Calendor类
引言:Calendar类引入
Date类的缺点:
- Date类对单独获取年,月,日,时,分,秒,昨天,明天,上个星期,加上或减去一些时间不好处理
- Date类不支持国际化
讲解
1、Calendar的作用 :
非常方便的可以获取到年月日时分秒,昨天,明天,上个星期,上个月,前几年…
2、如何创建Calendar对象
- Calendar类时一个抽象类,不能直接创建对象,只能使用之类对象
- 直接子类:GregorianCalendar
- 通过Calendar类提供一个静态方法获得日历对象,该方法如下:(static Calendar getInstance() 获得日历对象)
3、Calendar类常用方法
- int get(int field) 根据日历字段获得对应的字段信息
- void set(int field,int value) 将指定日历字段的值修改为指定的值value
- void add(int field,int amount) 将指定日历字段的值在当前值的基础上添加或减去一个值
4、Calendar注意事项
- MONTH:取值范围0到11,需要加1才是我们正确的月份
- DAY_OF_WEEK:获取1周ide第几天,默认1周的第1天是星期天
5、代码
public class Demo {
public static void main(String[] args){
// 创建日历对象
/*
GregorianCalendar
Calendar类的静态方法getInstance源码:
public static Calendar getInstance(){
return new GregorianCalendar();
}
*/
Calendar c = Calendar.getInstance();
System.out.println(c.get(Calendar.DAY_OF_WEEK));
// 修改年为 2018
c.set(Calendar.YEAR, 2018);
// 修改月
c.set(Calendar.MONTH, 11); // 0到11
// 年份向后偏移1年
c.add(Calendar.YEAR, 1);
// 获得年
System.out.println(c.get(Calendar.YEAR));
// 获得月
System.out.println(c.get(Calendar.MONTH) + 1);
// 获得日
System.out.println(c.get(Calendar.DAY_OF_MONTH));
// 时
System.out.println(c.get(Calendar.HOUR_OF_DAY));
System.out.println(c.get(Calendar.MINUTE));
System.out.println(c.get(Calendar.SECOND));
}
}