JavaTM 2 Platform
Standard Ed. 6

java.util
類別 GregorianCalendar

java.lang.Object
  繼承者 java.util.Calendar
      繼承者 java.util.GregorianCalendar
所有已實作的介面:
Serializable, Cloneable, Comparable<Calendar>

public class GregorianCalendar
extends Calendar

GregorianCalendarCalendar 的一個具體子類別,提供了世界上大多數國家/地區使用的標準日曆系統。

GregorianCalendar 是一種混合日曆,在單一間斷性的支持下同時支持儒略歷和格里高里歷系統,在預設情況下,它對應格里高里日曆創立時的格里高里歷日期(某些國家/地區是在 1582 年 10 月 15 日創立,在其他國家/地區要晚一些)。可由調用者通過調用 setGregorianChange() 來更改起始日期。

歷史上,在那些首先採用格里高里歷的國家/地區中,1582 年 10 月 4 日(儒略歷)之後就是 1582 年 10 月 15 日(格里高里歷)。此日曆正確地模擬了這些變化。在開始格里高里歷之前,GregorianCalendar 實作的是儒略歷。格里高里歷和儒略歷之間的唯一區別就是閏年規則。儒略歷指定每 4 年就為閏年,而格里高里歷則忽略不能被 400 整除的世紀年。

GregorianCalendar 可實作預期的 格里高里歷和儒略歷。也就是說,可以通過在時間上無限地向後或向前外推當前規則來計算日期。因此,對於所有的年份,都可以使用 GregorianCalendar 來產生有意義並且一致的結果。但是,採用現代儒略歷規則時,使用 GregorianCalendar 得到的日期只在歷史上從公元 4 年 3 月 1 日之後是準確的。在此日期之前,閏年規則的應用沒有規則性,在 45 BC 之前,甚至不存在儒略歷。

在格里高里歷創立以前,新年是 3 月 25 日。為了避免混淆,此日曆始終使用 1 月 1 日為新年。如果想要格里高里歷轉換之前並且處於 1 月 1 日和 3 月 24 日之間的日期,則可以進行手動調整。

WEEK_OF_YEAR 欄位所計算的值的範圍從 1 到 53。一年的第一個星期始於 getFirstDayOfWeek() 的最早 7 天,至少包含該年的 getMinimalDaysInFirstWeek() 各天。這取決於 getMinimalDaysInFirstWeek()getFirstDayOfWeek() 的值以及 1 月 1 日是星期幾。一年的第一個星期和下一年的第一個星期之間的各個星期按順序從 2 到 52 或 53(根據需要)進行編號。

例如,1998 年 1 月 1 日是星期四。如果 getFirstDayOfWeek()MONDAY,並且 getMinimalDaysInFirstWeek() 為 4(這些值反映了 ISO 8601 和很多國家/地區標準),則 1998 年的第一個星期開始於 1997 年 12 月 29 日,結束於 1998 年 1 月 4 日。但是,如果 getFirstDayOfWeek()SUNDAY,那麼 1998 年的第一個星期開始於 1998 年 1 月 4 日,結束於 1998 年 1 月 10 日;1998 年頭三天是 1997 年第 53 個星期的一部分。

WEEK_OF_MONTH 欄位所計算的值的範圍從 0 到 6。一個月的第一個星期(WEEK_OF_MONTH = 1 的日期)是該月至少連續 getMinimalDaysInFirstWeek() 天中的最早日期,結束於 getFirstDayOfWeek() 的前一天。與一年的第一個星期不同,一個月的第一個星期可能短於 7 天,也不必從 getFirstDayOfWeek() 這一天開始,並且不包括前一個月的日期。在第一個星期之前該月日期的 WEEK_OF_MONTH 為 0。

例如,如果 getFirstDayOfWeek()SUNDAYgetMinimalDaysInFirstWeek() 為 4,那麼 1998 年 1 月的第一個星期是從 1 月 4 日星期日到 1 月 10 日星期六。這些天的 WEEK_OF_MONTH 為 1。1 月 1 日星期四到 1 月 3 日星期六的 WEEK_OF_MONTH 為 0。如果 getMinimalDaysInFirstWeek() 變為 3,則 1 月 1 日到 1 月 3 日的 WEEK_OF_MONTH 為 1。

clear 方法將日曆欄位設置為未定義。GregorianCalendar 為每個日曆欄位使用以下預設值(如果該值未定義)。

欄位
預設值
ERA
AD
YEAR
1970
MONTH
JANUARY
DAY_OF_MONTH
1
DAY_OF_WEEK
一個星期的第一天
WEEK_OF_MONTH
0
DAY_OF_WEEK_IN_MONTH
1
AM_PM
AM
HOUR, HOUR_OF_DAY, MINUTE, SECOND, MILLISECOND
0

預設值不適用於以上未列出的欄位。

範例:

 // get the supported ids for GMT-08:00 (Pacific Standard Time)
 String[] ids = TimeZone.getAvailableIDs(-8 * 60 * 60 * 1000);
 // if no ids were returned, something is wrong. get out.
 if (ids.length == 0)
     System.exit(0);

  // begin output
 System.out.println("Current Time");

 // create a Pacific Standard Time time zone
 SimpleTimeZone pdt = new SimpleTimeZone(-8 * 60 * 60 * 1000, ids[0]);

 // set up rules for daylight savings time
 pdt.setStartRule(Calendar.APRIL, 1, Calendar.SUNDAY, 2 * 60 * 60 * 1000);
 pdt.setEndRule(Calendar.0ctober, -1, Calendar.SUNDAY, 2 * 60 * 60 * 1000);

 // create a GregorianCalendar with the Pacific Daylight time zone
 // and the current date and time
 Calendar calendar = new GregorianCalendar(pdt);
 Date trialTime = new Date();
 calendar.setTime(trialTime);

 // print out a bunch of interesting things
 System.out.println("ERA: " + calendar.get(Calendar.ERA));
 System.out.println("YEAR: " + calendar.get(Calendar.YEAR));
 System.out.println("MONTH: " + calendar.get(Calendar.MONTH));
 System.out.println("WEEK_OF_YEAR: " + calendar.get(Calendar.WEEK_OF_YEAR));
 System.out.println("WEEK_OF_MONTH: " + calendar.get(Calendar.WEEK_OF_MONTH));
 System.out.println("DATE: " + calendar.get(Calendar.DATE));
 System.out.println("DAY_OF_MONTH: " + calendar.get(Calendar.DAY_OF_MONTH));
 System.out.println("DAY_OF_YEAR: " + calendar.get(Calendar.DAY_OF_YEAR));
 System.out.println("DAY_OF_WEEK: " + calendar.get(Calendar.DAY_OF_WEEK));
 System.out.println("DAY_OF_WEEK_IN_MONTH: "
                    + calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH));
 System.out.println("AM_PM: " + calendar.get(Calendar.AM_PM));
 System.out.println("HOUR: " + calendar.get(Calendar.HOUR));
 System.out.println("HOUR_OF_DAY: " + calendar.get(Calendar.HOUR_OF_DAY));
 System.out.println("MINUTE: " + calendar.get(Calendar.MINUTE));
 System.out.println("SECOND: " + calendar.get(Calendar.SECOND));
 System.out.println("MILLISECOND: " + calendar.get(Calendar.MILLISECOND));
 System.out.println("ZONE_OFFSET: "
                    + (calendar.get(Calendar.ZONE_OFFSET)/(60*60*1000)));
 System.out.println("DST_OFFSET: "
                    + (calendar.get(Calendar.DST_OFFSET)/(60*60*1000)));

 System.out.println("Current Time, with hour reset to 3");
 calendar.clear(Calendar.HOUR_OF_DAY); // so doesn't override
 calendar.set(Calendar.HOUR, 3);
 System.out.println("ERA: " + calendar.get(Calendar.ERA));
 System.out.println("YEAR: " + calendar.get(Calendar.YEAR));
 System.out.println("MONTH: " + calendar.get(Calendar.MONTH));
 System.out.println("WEEK_OF_YEAR: " + calendar.get(Calendar.WEEK_OF_YEAR));
 System.out.println("WEEK_OF_MONTH: " + calendar.get(Calendar.WEEK_OF_MONTH));
 System.out.println("DATE: " + calendar.get(Calendar.DATE));
 System.out.println("DAY_OF_MONTH: " + calendar.get(Calendar.DAY_OF_MONTH));
 System.out.println("DAY_OF_YEAR: " + calendar.get(Calendar.DAY_OF_YEAR));
 System.out.println("DAY_OF_WEEK: " + calendar.get(Calendar.DAY_OF_WEEK));
 System.out.println("DAY_OF_WEEK_IN_MONTH: "
                    + calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH));
 System.out.println("AM_PM: " + calendar.get(Calendar.AM_PM));
 System.out.println("HOUR: " + calendar.get(Calendar.HOUR));
 System.out.println("HOUR_OF_DAY: " + calendar.get(Calendar.HOUR_OF_DAY));
 System.out.println("MINUTE: " + calendar.get(Calendar.MINUTE));
 System.out.println("SECOND: " + calendar.get(Calendar.SECOND));
 System.out.println("MILLISECOND: " + calendar.get(Calendar.MILLISECOND));
 System.out.println("ZONE_OFFSET: "
        + (calendar.get(Calendar.ZONE_OFFSET)/(60*60*1000))); // in hours
 System.out.println("DST_OFFSET: "
        + (calendar.get(Calendar.DST_OFFSET)/(60*60*1000))); // in hours
 

從以下版本開始:
JDK1.1
另請參見:
TimeZone, 序列化表格

欄位摘要
static int AD
          ERA 欄位的值指示公元後(耶穌紀元後)的時期(也稱為 CE)。
static int BC
          ERA 欄位的值指示公元前(Christ 前)的時期(也稱為 BCE)。
 
從類別 java.util.Calendar 繼承的欄位
ALL_STYLES, AM, AM_PM, APRIL, areFieldsSet, AUGUST, DATE, DAY_OF_MONTH, DAY_OF_WEEK, DAY_OF_WEEK_IN_MONTH, DAY_OF_YEAR, DECEMBER, DST_OFFSET, ERA, FEBRUARY, FIELD_COUNT, fields, FRIDAY, HOUR, HOUR_OF_DAY, isSet, isTimeSet, JANUARY, JULY, JUNE, LONG, MARCH, MAY, MILLISECOND, MINUTE, MONDAY, MONTH, NOVEMBER, OCTOBER, PM, SATURDAY, SECOND, SEPTEMBER, SHORT, SUNDAY, THURSDAY, time, TUESDAY, UNDECIMBER, WEDNESDAY, WEEK_OF_MONTH, WEEK_OF_YEAR, YEAR, ZONE_OFFSET
 
建構子摘要
GregorianCalendar()
          在具有預設語言環境的預設時區內使用當前時間建構一個預設的 GregorianCalendar
GregorianCalendar(int year, int month, int dayOfMonth)
          在具有預設語言環境的預設時區內建構一個帶有給定日期設置的 GregorianCalendar
GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute)
          為具有預設語言環境的預設時區建構一個具有給定日期和時間設置的 GregorianCalendar
GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute, int second)
          為具有預設語言環境的預設時區建構一個具有給定日期和時間設置的 GregorianCalendar。
GregorianCalendar(Locale aLocale)
          在具有給定語言環境的預設時區內建構一個基於當前時間的 GregorianCalendar
GregorianCalendar(TimeZone zone)
          在具有預設語言環境的給定時區內建構一個基於當前時間的 GregorianCalendar
GregorianCalendar(TimeZone zone, Locale aLocale)
          在具有給定語言環境的給定時區內建構一個基於當前時間的 GregorianCalendar
 
方法摘要
 void add(int field, int amount)
          根據日曆規則,將指定的(有符號的)時間量添加到給定的日曆欄位中。
 Object clone()
          創建並返回此物件的一個副本。
protected  void computeFields()
          將時間值(從 Epoch 至現在的毫秒偏移量)轉換為日曆欄位值。
protected  void computeTime()
          將日曆欄位值轉換為時間值(從 Epoch 至現在的毫秒偏移量)。
 boolean equals(Object obj)
          比較此 GregorianCalendar 與指定的 Object
 int getActualMaximum(int field)
          考慮到給定的時間值和 getFirstDayOfWeekgetMinimalDaysInFirstWeekgetGregorianChangegetTimeZone 方法的當前值,返回此日曆欄位可能具有的最大值。
 int getActualMinimum(int field)
          考慮到給定的時間值和 getFirstDayOfWeekgetMinimalDaysInFirstWeekgetGregorianChangegetTimeZone 方法的當前值,返回此日曆欄位可能具有的最小值。
 int getGreatestMinimum(int field)
          返回此 GregorianCalendar 實例給定日曆欄位的最高的最小值。
 Date getGregorianChange()
          獲得格里高里歷的更改日期。
 int getLeastMaximum(int field)
          返回此 GregorianCalendar 實例給定日曆欄位的最低的最大值。
 int getMaximum(int field)
          返回此 GregorianCalendar 實例的給定日曆欄位的最大值。
 int getMinimum(int field)
          返回此 GregorianCalendar 實例的給定日曆欄位的最小值。
 TimeZone getTimeZone()
          獲得時區。
 int hashCode()
          產生此 GregorianCalendar 物件的雜湊碼。
 boolean isLeapYear(int year)
          確定給定的年份是否為閏年。
 void roll(int field, boolean up)
          在給定的時間欄位上添加或減去(上/下)單個時間單元,不更改更大的欄位。
 void roll(int field, int amount)
          向指定日曆欄位添加有符號的時間量,不更改更大的欄位。
 void setGregorianChange(Date date)
          設置 GregorianCalendar 的更改日期。
 void setTimeZone(TimeZone zone)
          使用給定的時區值來設置時區。
 
從類別 java.util.Calendar 繼承的方法
after, before, clear, clear, compareTo, complete, get, getAvailableLocales, getDisplayName, getDisplayNames, getFirstDayOfWeek, getInstance, getInstance, getInstance, getInstance, getMinimalDaysInFirstWeek, getTime, getTimeInMillis, internalGet, isLenient, isSet, set, set, set, set, setFirstDayOfWeek, setLenient, setMinimalDaysInFirstWeek, setTime, setTimeInMillis, toString
 
從類別 java.lang.Object 繼承的方法
finalize, getClass, notify, notifyAll, wait, wait, wait
 

欄位詳細資訊

BC

public static final int BC
ERA 欄位的值指示公元前(Christ 前)的時期(也稱為 BCE)。從 BCAD 各年轉換依次是 2 BC、1 BC、1 AD、2 AD……。

另請參見:
Calendar.ERA, 常數欄位值

AD

public static final int AD
ERA 欄位的值指示公元後(耶穌紀元後)的時期(也稱為 CE)。從 BCAD 各年轉換依次是 2 BC、1 BC、1 AD、2 AD……。

另請參見:
Calendar.ERA, 常數欄位值
建構子詳細資訊

GregorianCalendar

public GregorianCalendar()
在具有預設語言環境的預設時區內使用當前時間建構一個預設的 GregorianCalendar


GregorianCalendar

public GregorianCalendar(TimeZone zone)
在具有預設語言環境的給定時區內建構一個基於當前時間的 GregorianCalendar

參數:
zone - 給定的時區。

GregorianCalendar

public GregorianCalendar(Locale aLocale)
在具有給定語言環境的預設時區內建構一個基於當前時間的 GregorianCalendar

參數:
aLocale - 給定的語言環境。

GregorianCalendar

public GregorianCalendar(TimeZone zone,
                         Locale aLocale)
在具有給定語言環境的給定時區內建構一個基於當前時間的 GregorianCalendar

參數:
zone - 給定的時區。
aLocale - 給定的語言環境。

GregorianCalendar

public GregorianCalendar(int year,
                         int month,
                         int dayOfMonth)
在具有預設語言環境的預設時區內建構一個帶有給定日期設置的 GregorianCalendar

參數:
year - 用來在日曆中設置 YEAR 日曆欄位的值。
month - 用來在日曆中設置 MONTH 日曆欄位的值。Month 值是基於 0 的,例如,0 表示 1 月。
dayOfMonth - 用來在日曆中設置 DAY_OF_MONTH 日曆欄位的值。

GregorianCalendar

public GregorianCalendar(int year,
                         int month,
                         int dayOfMonth,
                         int hourOfDay,
                         int minute)
為具有預設語言環境的預設時區建構一個具有給定日期和時間設置的 GregorianCalendar

參數:
year - 用來在日曆中設置 YEAR 日曆欄位的值。
month - 用來在日曆中設置 MONTH 日曆欄位的值。Month 值是基於 0 的,例如,0 表示 1 月。
dayOfMonth - 用來在日曆中設置 DAY_OF_MONTH 日曆欄位的值。
hourOfDay - 用來在日曆中設置 HOUR_OF_DAY 日曆欄位的值。
minute - 用來在日曆中設置 MINUTE 日曆欄位的值。

GregorianCalendar

public GregorianCalendar(int year,
                         int month,
                         int dayOfMonth,
                         int hourOfDay,
                         int minute,
                         int second)
為具有預設語言環境的預設時區建構一個具有給定日期和時間設置的 GregorianCalendar。

參數:
year - 用來在日曆中設置 YEAR 日曆欄位的值。
month - 用來在日曆中設置 MONTH 日曆欄位的值。Month 值是基於 0 的,例如,0 表示 1 月。
dayOfMonth - 用來在日曆中設置 DAY_OF_MONTH 日曆欄位的值。
hourOfDay - 用來在日曆中設置 HOUR_OF_DAY 日曆欄位的值。
minute - 用來在日曆中設置 MINUTE 日曆欄位的值。
second - 用來在日曆中設置 SECOND 日曆欄位的值。
方法詳細資訊

setGregorianChange

public void setGregorianChange(Date date)
設置 GregorianCalendar 的更改日期。這是發生從儒略歷日期切換到格里高里歷日期的點。預設時間是 1582 年 10 月 15 日(格里高里歷)。在此之前,日期是按照儒略歷計算的。

要得到純粹的儒略歷日曆,可將更改日期設置為 Date(Long.MAX_VALUE)。要得到一個純粹的格里高里歷日曆,可將更改日期設置為 Date(Long.MIN_VALUE)

參數:
date - 給定的格里高里歷起始日期。

getGregorianChange

public final Date getGregorianChange()
獲得格里高里歷的更改日期。這是發生從儒略歷日期切換到格里高里歷日期的點。預設時間是 1582 年 10 月 15 日(格里高里歷)。在此之前,日期是按照儒略歷計算的。

返回:
GregorianCalendar 物件的格里高里歷起始日期。

isLeapYear

public boolean isLeapYear(int year)
確定給定的年份是否為閏年。如果給定的年份是閏年,則返回 true。要指定 BC 年份,必須給定 1 - 年份。例如,指定 -3 為 BC 4 年。

參數:
year - 給定的年份。
返回:
如果給定的年份為閏年,則返回 true;否則返回 false

equals

public boolean equals(Object obj)
比較此 GregorianCalendar 與指定的 Object。當且僅當參數是一個 GregorianCalendar 物件,並且這個物件表示在相同的 Calendar 參數和格里高里歷更改日期下與此物件具有相同的時間值(從 Epoch 至現在的毫秒偏移量)時,結果為 true

覆寫:
類別 Calendar 中的 equals
參數:
obj - 要與之比較的物件。
返回:
如果此物件等於 obj,則返回 true;否則返回 false
另請參見:
Calendar.compareTo(Calendar)

hashCode

public int hashCode()
產生此 GregorianCalendar 物件的雜湊碼。

覆寫:
類別 Calendar 中的 hashCode
返回:
此物件的雜湊碼值。
另請參見:
Object.equals(java.lang.Object), Hashtable

add

public void add(int field,
                int amount)
根據日曆規則,將指定的(有符號的)時間量添加到給定的日曆欄位中。

添加規則 1。調用之後的 field 欄位的值減去調用之前的 field 欄位的值等於 amount,以 field 中發生的任何溢位為模。溢位發生在欄位值超出其範圍時,結果,下一個更大的欄位會遞增或遞減,欄位值被調整回其範圍內。

添加規則 2。如果期望某一個更小的欄位是無變化的,但讓它等於以前的值是不可能的,因為在欄位 field 發生更改之後,它的最大值和最小值也在發生更改,然後它的值被調整為盡量接近於所期望的值。更小的欄位表示一個更小的時間單元。HOUR 是一個比 DAY_OF_MONTH 更小的欄位。對於不期望是無變化欄位的更小欄位,無需進行任何調整。日曆系統確定期望是無變化欄位的那些欄位。

指定者:
類別 Calendar 中的 add
參數:
field - 日曆欄位。
amount - 為欄位添加的日期或時間量。
拋出:
IllegalArgumentException - 如果 fieldZONE_OFFSETDST_OFFSET,或未知,或者任何日曆欄位在 non-lenient 網要下具有超出範圍的值。
另請參見:
Calendar.roll(int,int), Calendar.set(int,int)

roll

public void roll(int field,
                 boolean up)
在給定的時間欄位上添加或減去(上/下)單個時間單元,不更改更大的欄位。

範例:考慮原來設置為 1999 年 12 月 31 日的 GregorianCalendar 。現在調用 roll(Calendar.MONTH, true) 將該日曆設置為 1999 年 1 月 31 日。YEAR 欄位未改變,因為它是一個比 MONTH 更大的欄位。

指定者:
類別 Calendar 中的 roll
參數:
up - 指出指定日曆欄位的值是上升還是下降。如果上升了,則使用 true;否則使用 false
field - 時間欄位。
拋出:
IllegalArgumentException - 如果 fieldZONE_OFFSETDST_OFFSET,或未知,或者任何日曆欄位在 non-lenient 網要下具有超出範圍的值。
另請參見:
add(int,int), Calendar.set(int,int)

roll

public void roll(int field,
                 int amount)
向指定日曆欄位添加有符號的時間量,不更改更大的欄位。負的波動量表示從欄位減去時間量,不更改更大的欄位。如果指定的量為 0,則此方法不執行任何操作。

此方法在添加時間量前調用 Calendar.complete(),使得所有的日曆欄位都標準化。如果任何日曆欄位在 non-lenient 網要下具有超出範圍的值,則拋出 IllegalArgumentException

範例:考慮原來設置為 1999 年 8 月 31 日的 GregorianCalendar 。現在調用 roll(Calendar.MONTH, 8) 將該日曆設置為 1999 年 4 月 30 日。如果使用 GregorianCalendar,則 4 月份的 DAY_OF_MONTH 欄位不可能為 31。將 DAY_OF_MONTH 設置為最可能接近的值 30。YEAR 欄位保持為值 1999,因為它是一個比 MONTH 更大的欄位。

範例:考慮原來設置為 1999 年 6 月 6 日星期日的 GregorianCalendar 。現在調用 roll(Calendar.WEEK_OF_MONTH, -1) 將該日曆設置為 1999 年 6 月 1 日星期二,而調用 add(Calendar.WEEK_OF_MONTH, -1) 則將日曆設置為 1999 年 5 月 30 日星期日。這是因為上升和下降規則施加了其他的約束:WEEK_OF_MONTH 改變時 MONTH 必須不變。根據添加規則 1,所得日期必定在 6 月 1 日星期二和 6 月 5 日星期六之間。根據添加規則 2,DAY_OF_WEEK(在改變 WEEK_OF_MONTH 時它是一個不變數)被設置為 Tuesday,是最接近 Sunday 的可能值(其中星期日是一個星期的第一天)。

覆寫:
類別 Calendar 中的 roll
參數:
field - 日曆欄位。
amount - 添加到 field 的有符號時間量。
拋出:
IllegalArgumentException - 如果 fieldZONE_OFFSETDST_OFFSET 或未知,或者任何日曆欄位在 non-lenient 網要下具有超出範圍的值。
從以下版本開始:
1.2
另請參見:
roll(int,boolean), add(int,int), Calendar.set(int,int)

getMinimum

public int getMinimum(int field)
返回此 GregorianCalendar 實例的給定日曆欄位的最小值。考慮到 getFirstDayOfWeekgetMinimalDaysInFirstWeekgetGregorianChangegetTimeZone 方法的當前值,最小值定義為由 get 方法為所有可能的時間值所返回的最小值。

指定者:
類別 Calendar 中的 getMinimum
參數:
field - 日曆欄位。
返回:
給定日曆欄位的最小值。
另請參見:
getMaximum(int), getGreatestMinimum(int), getLeastMaximum(int), getActualMinimum(int), getActualMaximum(int)

getMaximum

public int getMaximum(int field)
返回此 GregorianCalendar 實例的給定日曆欄位的最大值。考慮到 getFirstDayOfWeekgetMinimalDaysInFirstWeekgetGregorianChangegetTimeZone 方法的當前值,最大值定義為 get 方法為所有可能的時間值所返回的最大值。

指定者:
類別 Calendar 中的 getMaximum
參數:
field - 日曆欄位。
返回:
給定日曆欄位的最大值。
另請參見:
getMinimum(int), getGreatestMinimum(int), getLeastMaximum(int), getActualMinimum(int), getActualMaximum(int)

getGreatestMinimum

public int getGreatestMinimum(int field)
返回此 GregorianCalendar 實例給定日曆欄位的最高的最小值。考慮到 getFirstDayOfWeekgetMinimalDaysInFirstWeekgetGregorianChangegetTimeZone 方法的當前值,最高的最小值定義為 getActualMinimum(int) 為所有可能的時間值所返回的最大值。

指定者:
類別 Calendar 中的 getGreatestMinimum
參數:
field - 日曆欄位。
返回:
給定日曆欄位的最高的最小值。
另請參見:
getMinimum(int), getMaximum(int), getLeastMaximum(int), getActualMinimum(int), getActualMaximum(int)

getLeastMaximum

public int getLeastMaximum(int field)
返回此 GregorianCalendar 實例給定日曆欄位的最低的最大值。考慮到 getFirstDayOfWeekgetMinimalDaysInFirstWeekgetGregorianChangegetTimeZone 方法的當前值,最低的最大值定義為 getActualMaximum(int) 為所有可能的時間值所返回的最小值。

指定者:
類別 Calendar 中的 getLeastMaximum
參數:
field - 日曆欄位。
返回:
給定日曆欄位的最低的最大值。
另請參見:
getMinimum(int), getMaximum(int), getGreatestMinimum(int), getActualMinimum(int), getActualMaximum(int)

getActualMinimum

public int getActualMinimum(int field)
考慮到給定的時間值和 getFirstDayOfWeekgetMinimalDaysInFirstWeekgetGregorianChangegetTimeZone 方法的當前值,返回此日曆欄位可能具有的最小值。

例如,如果格里高里歷的更改日期是 1970 年 1 月 10 日,而此 GregorianCalendar 的日期是 1970 年 1 月 20 日,則 DAY_OF_MONTH 欄位的實際最小值是 10,因為按照儒略歷,1970 年 1 月 10 日的前一個日期是 1969 年 12 月 27 日。因此,從 1969 年 12 月 28 日到 1970 年 1 月 9 日的日期不存在。

覆寫:
類別 Calendar 中的 getActualMinimum
參數:
field - 日曆欄位。
返回:
針對此 GregorianCalendar 時間值的給定欄位最小值。
從以下版本開始:
1.2
另請參見:
getMinimum(int), getMaximum(int), getGreatestMinimum(int), getLeastMaximum(int), getActualMaximum(int)

getActualMaximum

public int getActualMaximum(int field)
考慮到給定的時間值和 getFirstDayOfWeekgetMinimalDaysInFirstWeekgetGregorianChangegetTimeZone 方法的當前值,返回此日曆欄位可能具有的最大值。例如,如果此實例的日期是 2004 年 2 月 1 日,則 DAY_OF_MONTH 欄位的實際最大值是 29,因為 2004 年是閏年;如果此實例的日期是 2005 年 2 月 1 日,則最大值是 28。

覆寫:
類別 Calendar 中的 getActualMaximum
參數:
field - 日曆欄位。
返回:
針對此 GregorianCalendar 時間值的給定欄位最大值。
從以下版本開始:
1.2
另請參見:
getMinimum(int), getMaximum(int), getGreatestMinimum(int), getLeastMaximum(int), getActualMinimum(int)

clone

public Object clone()
從類別 Calendar 複製的描述
創建並返回此物件的一個副本。

覆寫:
類別 Calendar 中的 clone
返回:
此物件的一個副本。
另請參見:
Cloneable

getTimeZone

public TimeZone getTimeZone()
從類別 Calendar 複製的描述
獲得時區。

覆寫:
類別 Calendar 中的 getTimeZone
返回:
與此日曆有關的時區物件。

setTimeZone

public void setTimeZone(TimeZone zone)
從類別 Calendar 複製的描述
使用給定的時區值來設置時區。

覆寫:
類別 Calendar 中的 setTimeZone
參數:
zone - 給定的時區。

computeFields

protected void computeFields()
將時間值(從 Epoch 至現在的毫秒偏移量)轉換為日曆欄位值。不會 一開始就重新計算時間;要重新計算時間,並重新計算欄位,則需要先調用 complete 方法。

指定者:
類別 Calendar 中的 computeFields
另請參見:
Calendar.complete()

computeTime

protected void computeTime()
將日曆欄位值轉換為時間值(從 Epoch 至現在的毫秒偏移量)。

指定者:
類別 Calendar 中的 computeTime
拋出:
IllegalArgumentException - 如果存在任何無效的日曆欄位。
另請參見:
Calendar.complete(), Calendar.computeFields()

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only