Calendar类概述:
Calendar 类是一个抽象类
它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,
并为操作日历字段(例如获得下星期的日期)提供了一些方法,瞬间可用毫秒值来表示。
成员方法
public static Calendar getInstance()
public int get(int field)
public void add(int field,int amount)
public final void set(int year,int month,int date)
/*
java.util.GregorianCalendar
[
time=1556095527688,
areFieldsSet=true,
areAllFieldsSet=true,
lenient=true,
zone=sun.util.calendar.ZoneInfo[
id="Asia/Shanghai",
offset=28800000,
dstSavings=0,
useDaylight=false,
transitions=19,
lastRule=null
],
firstDayOfWeek=1,
minimalDaysInFirstWeek=1,
ERA=1,
YEAR=2019,
MONTH=3,
WEEK_OF_YEAR=17,
WEEK_OF_MONTH=4,
DAY_OF_MONTH=24,
DAY_OF_YEAR=114,
DAY_OF_WEEK=4,
DAY_OF_WEEK_IN_MONTH=4,
AM_PM=1,
HOUR=4,
HOUR_OF_DAY=16,
MINUTE=45,
SECOND=27,
MILLISECOND=688,
ZONE_OFFSET=28800000,
DST_OFFSET=0
]
*/
举例代码如下
public class CalendarDemo01 {
public static void main(String[] args) {
Calendar c = Calendar.getInstance(Locale.CHINA);
System.out.println(c);
// public int get(int field)
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH) + 1;
int day = c.get(Calendar.DAY_OF_MONTH);
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
int second = c.get(Calendar.SECOND);
System.out.format("%d年%s月%d日 %d:%d:%d%n", year, (month < 10) ? "0" + month: month, day, hour, minute, second);
// long millis = c.getTimeInMillis();
// System.out.println(millis);
// 将日历和日期类相互转换
// Date d = new Date(c.getTimeInMillis());
// System.out.println(d);
// 将日期转换成日历
// Date d2 = new Date();
// c.setTimeInMillis(d2.getTime());
// public void add(int field,int amount)
c.add(Calendar.YEAR, 100);
year = c.get(Calendar.YEAR);
System.out.format("%d年%s月%d日 %d:%d:%d%n", year, (month < 10) ? "0" + month: month, day, hour, minute, second);
c.add(Calendar.MONTH, -12);
year = c.get(Calendar.YEAR);
month = c.get(Calendar.MONTH);
System.out.format("%d年%s月%d日 %d:%d:%d%n", year, (month < 10) ? "0" + month: month, day, hour, minute, second);
// public final void set(int year,int month,int date)
c.set(1970, 8, 1);
year = c.get(Calendar.YEAR);
month = c.get(Calendar.MONTH);
day = c.get(Calendar.DAY_OF_MONTH);
System.out.format("%d年%s月%d日 %d:%d:%d%n", year, (month < 10) ? "0" + month: month, day, hour, minute, second);
}
}