概述:
java.util.Calendar
是日历类,在
Date
后出现,替换掉了许多
Date
的方法。该类将所有可能用到的时间信息封装
为静态成员变量,方便获取。日历类就是方便获取各个时间属性的。
方法:
public static Calendar getInstance() :使用默认时区和语言环境获得一个日历
public abstract void add(int field, int amount) :根据日历的规则,为给定的日历字段添加或减去指定的时间量。
public void set(int field, int value) :将给定的日历字段设置为给定值。
public int get(int field) :返回给定日历字段的值。
public Date getTime() :返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象
Calendar
类中提供很多成员常量,代表给定的日历字段:
![](https://i-blog.csdnimg.cn/blog_migrate/51e35ccb6a60066a8f1245a097dda808.png)
get/set方法
get
方法用来获取指定字段的值,
set
方法用来设置指定字段的值,代码使用演示:
public static void main(String[] args) {
// 创建Calendar对象
Calendar cal = Calendar.getInstance();
// 设置年
int year = cal.get(Calendar.YEAR);
// 设置月
int month = cal.get(Calendar.MONTH) + 1;
// 设置日
int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
System.out.print(year + "年" + month + "月" + dayOfMonth + "日");
}
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR,2050);
System.out.print(year + "年" + month + "月" + dayOfMonth + "日");
// 2050年5月14日
}
add方法
add
方法可以对指定日历字段的值进行加减操作,如果第二个参数为正数则加上偏移量,如果为负数则减去偏移
量。代码如:
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
//当前时间:2020年5月14日
// 使用add方法
cal.add(Calendar.DAY_OF_MONTH, 2);// 加2天
cal.add(Calendar.YEAR, -3);// 减3年
// 设置年
int year = cal.get(Calendar.YEAR);
// 设置月
int month = cal.get(Calendar.MONTH) + 1;
// 设置日
int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
System.out.print(year + "年" + month + "月" + dayOfMonth + "日");
// 2017年5月16日
}
getTime方法
Calendar
中的
getTime
方法并不是获取毫秒时刻,而是拿到对应的
Date
对象。
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
Date date = cal.getTime();
System.out.println(date);
// Thu May 14 22:40:58 CST 2020
}
备注:
西方星期的开始为周日,中国为周一。
在Calendar类中,月份的表示是以0-11代表1-12月。
日期是有大小关系的,时间靠后,时间越大。