API文档中介绍:Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。
因其是一个抽象类,所以不能通过new来实例化对象,可以通过日历类的一个静态方法获取出日历类的对象
static Calendar getInstance()
使用默认时区和语言环境获得一个日历。
(1)void set(int year, int month, int date)
设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值。
(2) int get(int field)
返回给定日历字段的值。
注意:这里是0-11月,所以获取月份是应该加1
(3)abstract void add(int field, int amount)
根据日历的规则,为给定的日历字段添加或减去指定的时间量。
package cn.itcast.demo04;
import java.util.Calendar;
import java.util.Date;
public class CalenderDemo {
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
// 获取年份
int year = c.get(Calendar.YEAR);
// 获取月份
int month = c.get(Calendar.MONTH) + 1;
// 获取天数
int day = c.get(Calendar.DAY_OF_MONTH);
System.out.println(year + "年" + month + "月" + day + "日");
function();
function2();
Date date = c.getTime();
System.out.println(date);
}
/*
* 设置月份到10月份,即9
*/
public static void function() {
Calendar c = Calendar.getInstance();
c.set(2099, 9, 4);
// 获取年份
int year = c.get(Calendar.YEAR);
// 获取月份
int month = c.get(Calendar.MONTH) + 1;
// 获取天数
int day = c.get(Calendar.DAY_OF_MONTH);
System.out.println(year + "年" + month + "月" + day + "日");
}
public static void function2() {
Calendar c = Calendar.getInstance();
// abstract void add(int field, int amount)
// 根据日历的规则,为给定的日历字段添加或减去指定的时间量。
c.add(Calendar.DAY_OF_MONTH, 280);
// 获取年份
int year = c.get(Calendar.YEAR);
// 获取月份
int month = c.get(Calendar.MONTH) + 1;
// 获取天数
int day = c.get(Calendar.DAY_OF_MONTH);
System.out.println(year + "年" + month + "月" + day + "日");
}
}
输出结果
2019年5月17日
2099年10月4日
2020年2月21日
Fri May 17 21:16:21 GMT+08:00 2019