由于Date类过于古老,许多的构造器和方法都已经过时。Java推荐使用Calendar来完 成时间计算等操作
Calendar类中关于时间的属性
1、 常量:Calendar.YEAR 描述:年份
2、 常量:Calendar.MONTH 描述:月份
3、 常量:Calendar.DATE 描述:日期
4、 常量:Calendar.DAY_OF_MONTH 描述:日期
5、 常量:Calendar.HOUR 描述:12小时制的小时
6、 常量:Calendar.HOUR_OF_DAY 描述:24小时制的小时
7、 常量:Calendar.MINUTH 描述:分钟
8、 常量:Calendar.SECOND 描述:秒
9、 常量:Calendar.DAY_OF_WEEK 描述:星期几
常用方法:
1、 使用默认时区和语言环境获得一个日历
方法:getInstance(),返回值类型:Calendar
例子:
Calendar cal = Calendar.getInstance();
2、返回给定日历字段的值
方法:get(int filed),返回值类型:int
例子:
//下面是获取Calendar类中关于时间的属性
System.out.println(“年:” + cal.get(Calendar.YEAR));
// 月是从0开始(0~11),所以需要+1
System.out.println(“月:” + (cal.get(Calendar.MONTH) + 1));
System.out.println(“日:” + cal.get(Calendar.DAY_OF_MONTH));
System.out.println(“时:” + cal.get(Calendar.HOUR_OF_DAY));
System.out.println(“分:” + cal.get(Calendar.MINUTE));
System.out.println(“秒:” + cal.get(Calendar.SECOND));
3、 将给定的日历字段设置为给定值。该方法有多个重载
方法:set(int field, int value),返回值类型:void
例子:
// cal.set(year, month, date, hourOfDay, minute, second);//月是从0开始(0~11)
cal.set(2019, 4, 4, 4, 4, 4);
System.out.println(cal.getTime());
//单个字段一一设置
cal.set(Calendar.YEAR, 2019);
cal.set(Calendar.MONTH, Calendar.MAY);//使用英文的十二个月的单词
cal.set(Calendar.DAY_OF_MONTH, 4);
cal.set(Calendar.HOUR_OF_DAY, 4);
cal.set(Calendar.MINUTE, 4);
cal.set(Calendar.SECOND, 4);
System.out.println(cal.getTime());
4、 根据日历的规则,为给定的日历字段添加或减去指定的时间量
方法:add(int field, int amount),返回值类型:void
例子:
cal.add(Calendar.MONTH, 5);//+5个月
System.out.println(cal.getTime());
cal.add(Calendar.MONTH, -5);
System.out.println(cal.getTime());
5、向指定日历字段添加指定(有符号的)时间量,不更改更大的字段
方法:roll(int field, int amount),返回值类型:void
例子:
cal.roll(Calendar.MONTH, 5);//+5个月
System.out.println(cal.getTime());
cal.roll(Calendar.MONTH, -5);
System.out.println(cal.getTime());
6、 返回一个表示此 Calendar 时间值(从历元至现在的毫 秒偏移量)的Date对象
方法:getTime(),返回值类型:Date
例子:
Date date1=cal.getTime();
7、 使用给定的Date设置此Calendar的时间
方法:setTime(Date date),返回值类型:void
例子:
Calendar cal2=Calendar.getInstance();
cal2.setTime(date1);