java.util.Calendar
是 Java 中用于處理日期和時間的一個類。它提供了許多方法來操作日期和時間,以下是一些常用的功能:
要獲取當前日期和時間,可以使用 Calendar.getInstance()
方法。這將返回一個表示當前時間的 Calendar
對象。
Calendar calendar = Calendar.getInstance();
Calendar
類提供了一系列常量,代表不同的日期和時間字段,例如 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開始,所以需要加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()
方法設置 Calendar
對象的日期和時間。
calendar.set(Calendar.YEAR, 2023);
calendar.set(Calendar.MONTH, 4); // 注意:月份從0開始
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
類還提供了一些方法來進行日期和時間的計算,例如 add()
和 roll()
。
add()
方法會根據指定的字段和數量更改日期或時間,并自動處理任何相關的調整,例如月份的變化或閏年。calendar.add(Calendar.DAY_OF_MONTH, 7); // 添加7天
calendar.add(Calendar.MONTH, -2); // 減去2個月
roll()
方法類似于 add()
,但它不會引起其他字段的變化。例如,如果你在一個月的最后一天調用 roll(Calendar.MONTH, 1)
,那么月份將會變成下一個月,但日期將保持不變(除非下個月沒有足夠的天數)。Calendar
類和 Date
類可以相互轉換。你可以使用 getTime()
方法從 Calendar
對象獲取 Date
對象,或者使用 setTime()
方法將 Date
對象設置為 Calendar
對象的日期和時間。
Date date = calendar.getTime();
calendar.setTime(new Date());
注意:Calendar
類是非線程安全的,因此在多線程環境中使用時需要注意同步。另外,Java 8 引入了新的日期和時間 API(java.time
包),它提供了更好的設計和更強大的功能,因此在新項目中建議使用新的 API。