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天
ICP备案:
公安联网备案: