JavaTM Platform Standard Ed. 6
GregorianCalendar類
Calendar類實現了公歷日歷,GregorianCalendar是Calendar類的一個具體實現。
Calendar 的getInstance()方法返回一個默認用當前的語言環境和時區初始化的GregorianCalendar對象。GregorianCalendar定義了兩個字段:AD和BC。這些代表公歷定義的兩個時代。
下面列出GregorianCalendar對象的幾個構造方法:
序號 | 構造函數和說明 |
1 | GregorianCalendar() 在具有默認語言環境的默認時區內使用當前時間構造一個默認的 GregorianCalendar。 |
2 | GregorianCalendar(int year, int month, int date) 在具有默認語言環境的默認時區內構造一個帶有給定日期設置的 GregorianCalendar |
3 | GregorianCalendar(int year, int month, int date, int hour, int minute) 為具有默認語言環境的默認時區構造一個具有給定日期和時間設置的 GregorianCalendar。 |
4 | GregorianCalendar(int year, int month, int date, int hour, int minute, int second) 為具有默認語言環境的默認時區構造一個具有給定日期和時間設置的 GregorianCalendar。 |
5 | GregorianCalendar(Locale aLocale) 在具有給定語言環境的默認時區內構造一個基於當前時間的 GregorianCalendar。 |
6 | GregorianCalendar(TimeZone zone) 在具有默認語言環境的給定時區內構造一個基於當前時間的 GregorianCalendar。 |
7 | GregorianCalendar(TimeZone zone, Locale aLocale) 在具有給定語言環境的給定時區內構造一個基於當前時間的 GregorianCalendar。 |
這里是GregorianCalendar 類提供的一些有用的方法列表:
序號 | 方法和說明 |
1 | void add(int field, int amount) 根據日歷規則,將指定的(有符號的)時間量添加到給定的日歷字段中。 |
2 | protected void computeFields() 轉換UTC毫秒值為時間域值 |
3 | protected void computeTime() 覆蓋Calendar ,轉換時間域值為UTC毫秒值 |
4 | boolean equals(Object obj) 比較此 GregorianCalendar 與指定的 Object。 |
5 | int get(int field) 獲取指定字段的時間值 |
6 | int getActualMaximum(int field) 返回當前日期,給定字段的最大值 |
7 | int getActualMinimum(int field) 返回當前日期,給定字段的最小值 |
8 | int getGreatestMinimum(int field) 返回此 GregorianCalendar 實例給定日歷字段的最高的最小值。 |
9 | Date getGregorianChange() 獲得格里高利歷的更改日期。 |
10 | int getLeastMaximum(int field) 返回此 GregorianCalendar 實例給定日歷字段的最低的最大值 |
11 | int getMaximum(int field) 返回此 GregorianCalendar 實例的給定日歷字段的最大值。 |
12 | Date getTime() 獲取日歷當前時間。 |
13 | long getTimeInMillis() 獲取用長整型表示的日歷的當前時間 |
14 | TimeZone getTimeZone() 獲取時區。 |
15 | int getMinimum(int field) 返回給定字段的最小值。 |
16 | int hashCode() 重寫hashCode. |
17 | boolean isLeapYear(int year) 確定給定的年份是否為閏年。 |
18 | void roll(int field, boolean up) 在給定的時間字段上添加或減去(上/下)單個時間單元,不更改更大的字段。 |
19 | void set(int field, int value) 用給定的值設置時間字段。 |
20 | void set(int year, int month, int date) 設置年、月、日的值。 |
21 | void set(int year, int month, int date, int hour, int minute) 設置年、月、日、小時、分鍾的值。 |
22 | void set(int year, int month, int date, int hour, int minute, int second) 設置年、月、日、小時、分鍾、秒的值。 |
23 | void setGregorianChange(Date date) 設置 GregorianCalendar 的更改日期。 |
24 | void setTime(Date date) 用給定的日期設置Calendar的當前時間。 |
25 | void setTimeInMillis(long millis) 用給定的long型毫秒數設置Calendar的當前時間。 |
26 | void setTimeZone(TimeZone value) 用給定時區值設置當前時區。 |
27 | String toString() 返回代表日歷的字符串。 |
實例
import java.util.*; public class GregorianCalendarDemo { public static void main(String args[]) { String months[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; int year; // 初始化 Gregorian 日歷 // 使用當前時間和日期 // 默認為本地時間和時區 GregorianCalendar gcalendar = new GregorianCalendar(); // 顯示當前時間和日期的信息 System.out.print("Date: "); System.out.print(months[gcalendar.get(Calendar.MONTH)]); System.out.print(" " + gcalendar.get(Calendar.DATE) + " "); System.out.println(year = gcalendar.get(Calendar.YEAR)); System.out.print("Time: "); System.out.print(gcalendar.get(Calendar.HOUR) + ":"); System.out.print(gcalendar.get(Calendar.MINUTE) + ":"); System.out.println(gcalendar.get(Calendar.SECOND)); // 測試當前年份是否為閏年 if(gcalendar.isLeapYear(year)) { System.out.println("當前年份是閏年"); } else { System.out.println("當前年份不是閏年"); } } }
以上實例編譯運行結果如下:
Date: Apr 22 2009 Time: 11:25:27 當前年份不是閏年