Calendar类

java.util.Calendar类:日历类

  • Calendar类是一个抽象类,里边提供了很多操作日历字段的方法(YEAR、MONTH、DAY_OF_MONTH、HOUR), Calendar类无法直接创建对象使用,里边有一个静态方法getInstance(),该方法返回了Calendar类的子类对象
static Calendar getInstance() //使用默认时区和环境语言获得一个日历
public static void main(String[] args) {
	Calendar c = Calendar.getInstance();
	System.out.println(c);//java.util.GregorianCalendar[time=1592012221384,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=2,minimalDaysInFirstWeek=4,ERA=1,YEAR=2020,MONTH=5,WEEK_OF_YEAR=24,WEEK_OF_MONTH=2,DAY_OF_MONTH=13,DAY_OF_YEAR=165,DAY_OF_WEEK=7,DAY_OF_WEEK_IN_MONTH=2,AM_PM=0,HOUR=9,HOUR_OF_DAY=9,MINUTE=37,SECOND=1,MILLISECOND=384,ZONE_OFFSET=28800000,DST_OFFSET=0],说明java.util.GregorianCalendar[time=1592012221384,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=2,minimalDaysInFirstWeek=4,ERA=1,YEAR=2020,MONTH=5,WEEK_OF_YEAR=24,WEEK_OF_MONTH=2,DAY_OF_MONTH=13,DAY_OF_YEAR=165,DAY_OF_WEEK=7,DAY_OF_WEEK_IN_MONTH=2,AM_PM=0,HOUR=9,HOUR_OF_DAY=9,MINUTE=37,SECOND=1,MILLISECOND=384,ZONE_OFFSET=28800000,DST_OFFSET=0],说明Calendar类重写了ToString方法
}

Calendar类的成员方法:

  • public int get(int field):返回给定日历字段的值
  • public void set(int field, int value):将给定的日历字段设置为给定值
  • public abstract void add(int field, int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量。
  • public Date getTime():返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。
    成员方法的参数:
    int field:日历类的字段,可以使用Calendar类的静态成员变量获取
    public final static int YEAR = 1; 年
    public final static int MONTH = 2; 月
    public final static int WEEK_OF_YEAR = 3; 一年中的一天
    public final static int WEEK_OF_MONTH = 4; 一月中的一周
    public final static int DATE = 5; 天
  /*
  * public int get(int field):返回给定日历字段的值
  * 参数:传递指定的日历字段(MONTH、YEAR、、、、)
  * 返回值:日历字段代表具体的值
  */
private static void demo01() {
	Calendar c = Calendar.getInstance();
	int year = c.get(Calendar.YEAR);
	System.out.println(year);

	int month = c.get(Calendar.MONTH);
	System.out.println(month + 1);//西方的月份0-11,东方的月份 1-12

	int date01 = c.get(Calendar.DATE);
	System.out.println(date01);

	int date02 = c.get(Calendar.DAY_OF_MONTH);
	System.out.println(date02);

}
/*
  * public void set(int field, int value):将给定的日历字段设置为给定值
  * 参数:
  *   int field:传递指定的日历字段(MONTH、YEAR、、、、)
  *   int value:传递的字段设置的具体的值
  */
private static void demo02() {
	Calendar c = Calendar.getInstance();
	//设置年
	c.set(Calendar.YEAR, 1999);
	int year = c.get(Calendar.YEAR);
	System.out.println(year);
	//设置月
	c.set(Calendar.MONTH, 10);
	int month = c.get(Calendar.MONTH);
	System.out.println(month);//西方的月份0-11,东方的月份 1-12
	//设置天
	c.set(Calendar.DATE, 18);
	int date = c.get(Calendar.DATE);
	System.out.println(date);
	System.out.println("-----");
	//同时设置年月日,可以使用set的重载方法
	c.set(1990, 5, 4);
	year = c.get(Calendar.YEAR);
	System.out.println(year);
	month = c.get(Calendar.MONTH);
	System.out.println(month);//西方的月份0-11,东方的月份 1-12
	date = c.get(Calendar.DATE);
	System.out.println(date);
}
/*
  * public abstract void add(int field, int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量。
  * 把指定的字段增加/减少指定的值
  * 参数:
  *   int field:传递指定的日历字段(MONTH、YEAR、、、、)
  *   int amount:增加/减少的值
  *    正数:增加
  *    负数:减少
  */
private static void demo03() {
	Calendar c = Calendar.getInstance();
	c.add(Calendar.YEAR, 2);
	int year = c.get(Calendar.YEAR);
	System.out.println(year);//2022
	c.add(Calendar.MONTH, -3);
	int month = c.get(Calendar.MONTH);//2
	System.out.println(month);//西方的月份0-11,东方的月份 1-12
	c.add(Calendar.DATE, 1);
	int date = c.get(Calendar.DATE);
	System.out.println(date);//14
}
/*
  * public Date getTime():返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。
  * 把日历对象,转换为日期对象
  */
private static void demo04() {
	Calendar c = Calendar.getInstance();
	Date date = c.getTime();
	System.out.println(date);//Sat Jun 13 10:17:22 CST 2020
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值