java.util.Calendar
是 Java 中用于處理日期和時(shí)間的一個(gè)類。它提供了許多方法來(lái)操作日期和時(shí)間,以下是一些常用的功能:
要獲取當(dāng)前日期和時(shí)間,可以使用 Calendar.getInstance()
方法。這將返回一個(gè)表示當(dāng)前時(shí)間的 Calendar
對(duì)象。
Calendar calendar = Calendar.getInstance();
Calendar
類提供了一系列常量,代表不同的日期和時(shí)間字段,例如 Calendar.YEAR
、Calendar.MONTH
、Calendar.DAY_OF_MONTH
、Calendar.HOUR_OF_DAY
等。你可以使用 get()
方法獲取這些字段的值。
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1; // 月份從0開(kāi)始,所以需要加1
int day = calendar.get(Calendar.DAY_OF_MONTH);
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
你可以使用 set()
方法設(shè)置 Calendar
對(duì)象的日期和時(shí)間。
calendar.set(Calendar.YEAR, 2023);
calendar.set(Calendar.MONTH, 4); // 注意:月份從0開(kāi)始
calendar.set(Calendar.DAY_OF_MONTH, 15);
calendar.set(Calendar.HOUR_OF_DAY, 14);
calendar.set(Calendar.MINUTE, 30);
calendar.set(Calendar.SECOND, 0);
Calendar
類還提供了一些方法來(lái)進(jìn)行日期和時(shí)間的計(jì)算,例如 add()
和 roll()
。
add()
方法會(huì)根據(jù)指定的字段和數(shù)量更改日期或時(shí)間,并自動(dòng)處理任何相關(guān)的調(diào)整,例如月份的變化或閏年。calendar.add(Calendar.DAY_OF_MONTH, 7); // 添加7天
calendar.add(Calendar.MONTH, -2); // 減去2個(gè)月
roll()
方法類似于 add()
,但它不會(huì)引起其他字段的變化。例如,如果你在一個(gè)月的最后一天調(diào)用 roll(Calendar.MONTH, 1)
,那么月份將會(huì)變成下一個(gè)月,但日期將保持不變(除非下個(gè)月沒(méi)有足夠的天數(shù))。Calendar
類和 Date
類可以相互轉(zhuǎn)換。你可以使用 getTime()
方法從 Calendar
對(duì)象獲取 Date
對(duì)象,或者使用 setTime()
方法將 Date
對(duì)象設(shè)置為 Calendar
對(duì)象的日期和時(shí)間。
Date date = calendar.getTime();
calendar.setTime(new Date());
注意:Calendar
類是非線程安全的,因此在多線程環(huán)境中使用時(shí)需要注意同步。另外,Java 8 引入了新的日期和時(shí)間 API(java.time
包),它提供了更好的設(shè)計(jì)和更強(qiáng)大的功能,因此在新項(xiàng)目中建議使用新的 API。