Java Calendar类的用法(附带实例)
在 Java 程序中,Date 类中获取年、获取月、根据指定年月日进行对象创建等方法都已经不推荐使用,这些过时的方法很多都被 Calendar 类及其相关方法替代。
Calendar 类也称日历类,同样位于 java.util 包中,可以指定年月日,可以获取年月日,也可以对日期进行加减运算。
Calendar 类是一个抽象类,不可以用 new 关键字来创建对象,需要通过 getInstance() 方法来获取实例,代表的是系统当前时间,也可以通过其子类 GregorianCalendar 类来创建对象。
Calendar 类提供的常用方法如下表所示:
接下来,通过案例来演示 Calendar 日历类常用方法的使用。
Calendar 类也称日历类,同样位于 java.util 包中,可以指定年月日,可以获取年月日,也可以对日期进行加减运算。
Calendar 类是一个抽象类,不可以用 new 关键字来创建对象,需要通过 getInstance() 方法来获取实例,代表的是系统当前时间,也可以通过其子类 GregorianCalendar 类来创建对象。
Calendar 类提供的常用方法如下表所示:
方法 | 方法描述 |
---|---|
Calendar getInstance() | 返回一个系统当前日期的日历对象 |
void set(int year, int month, int date) | 设置当前日期对象的 YEAR(年)、MONTH(月)、DAY_OF_MONTH(一个月中的第几天) |
void set(int year, int month, int date, int hourOfDay, int minute, int second) | 设置当前日期对象的 YEAR(年)、MONTH(月)、DAY_OF_MONTH(一个月中的第几天)、HOUR_OF_DAY(一天中的小时)、MINUTE(分钟)、SECOND(秒)的值 |
void set(int field, int value) | 将给定的日历字段 field 设置成指定值 value |
void setTime(Date date) | 将 Date 类型日期值设置给 Calendar 对象 |
void setTimeInMillis(long millis) | 将给定的 long 毫秒数设置给 Calendar 对象 |
long getTimeInMillis() | 返回 Calendar 对象对应的 long 毫秒数 |
Date getTime() | 返回一个与之对应的 Date 对象 |
int get(int field) | 返回指定日历字段的值 |
void add(int field, int amount) | 根据日历规则,给指定的字段添加或者减去指定时间量 |
接下来,通过案例来演示 Calendar 日历类常用方法的使用。
import java.util.Calendar; public class Demo { public static void main(String[] args) { Calendar date = Calendar.getInstance(); int year = date.get(Calendar.YEAR); int month = date.get(Calendar.MONTH) + 1; // 注意:月份从0开始 int day = date.get(Calendar.DAY_OF_MONTH); System.out.println("系统当前时间:" + year + "年" + month + "月" + day + "日"); Calendar date2 = Calendar.getInstance(); // 设置年月日时分秒,月份0开始 date2.set(2026,0,1,0,0,0); long dlong1 = date.getTimeInMillis(); // 获取当前日期的毫秒值 long dlong2 = date2.getTimeInMillis(); // 获取2026-1-1的毫秒值 // 计算两个毫秒值之间的差并换算成天 long daym = (dlong2 - dlong1) / (24 * 60 * 60 * 1000); System.out.println("距离2026年元旦还有:" + daym + "天"); } }程序的运行结果如下:
系统当前时间:2025年4月16日
距离2026年元旦还有:259天