java.util.Calendar类:日历类
- 在Date后出现,替换掉了许多Date的方法,该类将所有可能用到的时间信息封装为静态成员变量,方便获取
- 日历类就是方便获取各个时间属性的
- Calendar类是一个抽象类,里边提供了很多操作日历字段的方法,如YEAR , MONTH , DAY_OF_MONTH , HOUR
- Calendar类无法直接创建对象使用,里边有一个静态方法叫getInstance(),该方法返回了Calendar类的子类对象
- public static Calendar getInstance(),使用默认时区和区域设置获取日历
public static void main(String[] args) {
//方法返回一个Calendar的子类对象,父类引用指向子类对象:多态
Calendar c = Calendar.getInstance();
System.out.println(c);
}
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 static final int YEAR = 1; 年
-
public static final int MONTH = 2; 月
-
public static final int DATE = 5; 月中的某一天
-
public static final int DAY_OF_MONTH = 5; 月中的某一天
-
public static final int HOUR = 10; 时
-
public static final int MINUTE = 12; 分
-
public static final int SECOND = 13; 秒
private static void demo() {
// public int get(int field):返回给定的日历字段,就是返回指定的年或月或日
//参数:传递指定日历字段(YEAR,MONTH..)
//返回值:日历字段代表的具体的值
Calendar c = Calendar.getInstance();
int i = c.get(Calendar.YEAR);//当前系统的年份
int mouth = c.get(Calendar.MONTH);//当前系统的月份,西方0-11,东方1-12
System.out.println(i);//2019
System.out.println(mouth);//11
}
private static void demo2() {
//public void set(int field,int value):将给定的日历字段设置为给定值,设置日历的时间
//参数:
// int field 传递指定日历字段(YEAR,MONTH..)
//int value 设置给指定字段的值
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR,2020);//设置当前年份
c.set(Calendar.MONTH,2);//设置月份
c.set(2222,2,22);//同时设置年月日,重载方法
System.out.println(c.get(Calendar.YEAR));//2020
System.out.println(c.get(Calendar.MONTH));//2
}
private static void demo3() {
//public abstract void add(int field,int amount):根据日历的规则,将指定的日历添加或者减去指定的时间量
//int field :传递指定日历字段(YEAR,MONTH..)
//int amount:设置增加、减少的值,正数增加,负数减少
Calendar c = Calendar.getInstance();
c.add(Calendar.YEAR,5);//把年份加5
c.add(Calendar.MONTH,5);//把月份加5
System.out.println(c.get(Calendar.YEAR));//当前2019年,2024
System.out.println(c.get(Calendar.MONTH));//当前12月,4
}
private static void demo4() {
//public Date getTime():返回一个表示此Calendar时间值的Date对象。
//把日历对象转换为日期对象
Calendar c = Calendar.getInstance();
Date date = c.getTime();
System.out.println(date);//Tue Dec 31 19:55:39 CST 2019
}