创建日历对象

可以使用 getInstance() 或者使用构造函数 GregorianCalendar 创建日历对象。

需要注意的是,Calendar 中的月份是从零开始的,这意味着 JANUARY 由 int 值 0 表示。
为了提供更好的代码,请始终使用 Calendar 常量,例如 Calendar.JANUARY 以避免误解。

相关文章:如何在 Java 中创建特定日期

Calendar calendar = Calendar.getInstance();
Calendar gregorianCalendar = new GregorianCalendar();
Calendar gregorianCalendarAtSpecificDay = new GregorianCalendar(2014, Calendar.JANUARY, 1);
Calendar gregorianCalendarAtSpecificDayAndTime = new GregorianCalendar(2014, Calendar.JANUARY, 1,
6, 55, 10);

注意:始终使用月份常量:数字表示具有误导性,例如Calendar.JANUARY 的值为 0

增加/减少日历字段

add() 和 roll() 可用于增加/减少日历字段。

Calendar calendar = new GregorianCalendar(2014, Calendar.MARCH, 31); //31 March 2014

add() 方法影响所有字段,如果要从日历中添加或者减去实际日期,则该方法有效

calendar.add(Calendar.MONTH, -6);

上述操作从日历中删除了六个月,使我们回到 2014 年 9 月 30 日。

要更改特定字段而不影响其他字段,请使用 roll()。

calendar.roll(Calendar.MONTH, -6);

上述操作从当前月份中删除了六个月,因此将月份标识为九月。
没有调整其他字段;年份并没有因这次行动而改变。

减去日历

要获得两个日历之间的差异,请使用 getTimeInMillis() 方法:

Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
c2.set(Calendar.DATE, c2.get(Calendar.DATE) + 1);
System.out.println(c2.getTimeInMillis() - c1.getTimeInMillis()); //outputs 86400000 (24 * 60 * 60 *
1000)

判断是上午/下午

使用 Calendar 类很容易找到 AM 或者 PM。

Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
if (cal.get(Calendar.AM_PM) == Calendar.PM)
     System.out.println("It is PM");
Java 中的Calendar 及其子类示例
日期:2020-06-02 22:15:15 来源:oir作者:oir