首页 > 编程笔记 > Java笔记 阅读:7

Java Calendar类的用法(附带实例)

在 Java 程序中,Date 类中获取年、获取月、根据指定年月日进行对象创建等方法都已经不推荐使用,这些过时的方法很多都被 Calendar 类及其相关方法替代。

Calendar 类也称日历类,同样位于 java.util 包中,可以指定年月日,可以获取年月日,也可以对日期进行加减运算。

Calendar 类是一个抽象类,不可以用 new 关键字来创建对象,需要通过 getInstance() 方法来获取实例,代表的是系统当前时间,也可以通过其子类 GregorianCalendar 类来创建对象。

Calendar 类提供的常用方法如下表所示:

表: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天

相关文章