JavaTM 2 Platform
Standard Ed. 6

java.util
類別 Calendar

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

public abstract class Calendar
extends Object
implements Serializable, Cloneable, Comparable<Calendar>

Calendar 類別是一個抽象類別,它為特定瞬間與一組諸如 YEARMONTHDAY_OF_MONTHHOUR日曆欄位之間的轉換提供了一些方法,並為操作日曆欄位(例如獲得下星期的日期)提供了一些方法。瞬間可用毫秒值來表示,它是距歷元(即格林威治標準時間 1970 年 1 月 1 日的 00:00:00.000,格里高里歷)的偏移量。

該類別還為實作包範圍外的具體日曆系統提供了其他欄位和方法。這些欄位和方法被定義為 protected

與其他語言環境敏感類別一樣,Calendar 提供了一個類別方法 getInstance,以獲得此型別的一個通用的物件。CalendargetInstance 方法返回一個 Calendar 物件,其日曆欄位已由當前日期和時間初始化:

     Calendar rightNow = Calendar.getInstance();
 

Calendar 物件能夠產生為特定語言和日曆樣式實作日期-時間格式化所需的所有日曆欄位值,例如,日語-格裡高裡歷,日語-傳統日曆。Calendar 定義了某些日曆欄位返回值的範圍,以及這些值的含義。例如,對於所有日曆,日曆系統第一個月的值是 MONTH == JANUARY。其他值是由具體子類別(例如 ERA)定義的。有關此內容的細節,請參閱每個欄位的文檔和子類別文檔。

獲得並設置日曆欄位值

可以通過調用 set 方法來設置日曆欄位值。在需要計算時間值(距歷元所經過的毫秒)或日曆欄位值之前,不會解釋 Calendar 中的所有欄位值設置。調用 getgetTimeInMillisgetTimeaddroll 涉及此類別計算。

寬鬆性

Calendar 有兩種解釋日曆欄位的網要,即 lenientnon-lenient。當 Calendar 處於 lenient 網要時,它可接受比它所產生的日曆欄位範圍更大範圍內的值。當 Calendar 重新計算日曆欄位值,以便由 get() 返回這些值時,所有日曆欄位都被標準化。例如,lenient 網要下的 GregorianCalendarMONTH == JANUARYDAY_OF_MONTH == 32 解釋為 February 1。

Calendar 處於 non-lenient 網要時,如果其日曆欄位中存在任何不一致性,它都會拋出一個異常。例如,GregorianCalendar 總是在 1 與月份的長度之間產生 DAY_OF_MONTH 值。如果已經設置了任何超出範圍的欄位值,那麼在計算時間或日曆欄位值時,處於 non-lenient 網要下的 GregorianCalendar 會拋出一個異常。

第一個星期

Calendar 使用兩個參數定義了特定於語言環境的 7 天制星期:星期的第一天和第一個星期中的最小一天(從 1 到 7)。這些數字取自建構 Calendar 時的語言環境資源資料。還可以通過為其設置值的方法來顯式地指定它們。

在設置或獲得 WEEK_OF_MONTHWEEK_OF_YEAR 欄位時,Calendar 必須確定一個月或一年的第一個星期,以此作為參考點。一個月或一年的第一個星期被確定為開始於 getFirstDayOfWeek() 的最早七天,它最少包含那一個月或一年的 getMinimalDaysInFirstWeek() 天數。第一個星期之前的各星期編號為 ...、-1、0;之後的星期編號為 2、3、...。注意,get() 返回的標準化編號方式可能有所不同。例如,特定 Calendar 子類別可能將某一年第 1 個星期之前的那個星期指定為前一年的第 n 個星期。

日曆欄位解析

在計算日曆欄位中的日期和時間時,可能沒有足夠的資訊用於計算(例如只有年和月,但沒有日),或者可能有不一致的資訊( 例如 "Tuesday, July 15, 1996"(格林威治時間)——實際上,1996 年 7 月 15 日是星期一 )。Calendar 將解析日曆欄位值,以便用以下方式確定日期和時間。

如果日曆欄位值中存在任何衝突,則 Calendar 將為最近設置的日曆欄位提供優先權。以下是日曆欄位的預設組合。將使用由最近設置的單個欄位所確定的最近組合。

對於日期欄位

 YEAR + MONTH + DAY_OF_MONTH
 YEAR + MONTH + WEEK_OF_MONTH + DAY_OF_WEEK
 YEAR + MONTH + DAY_OF_WEEK_IN_MONTH + DAY_OF_WEEK
 YEAR + DAY_OF_YEAR
 YEAR + DAY_OF_WEEK + WEEK_OF_YEAR
 
對於時間欄位
 HOUR_OF_DAY
 AM_PM + HOUR
 

如果在選定的欄位組合中,還有尚未設置值的任一日曆欄位,那麼 Calendar 將使用其預設值。每個欄位的預設值可能依據具體的日曆系統而有所不同。例如,在 GregorianCalendar 中,欄位的預設值與歷元起始部分的欄位值相同:即 YEAR = 1970MONTH = JANUARYDAY_OF_MONTH = 1,等等。

註: 對於某些特別時間的解釋可能會有某些歧義,可以用下列方式解決:

  1. 23:59 是一天中的最後一分鐘,而 00:00 是下一天的第一分鐘。因此,1999 年 12 月 31 日的 23:59 < 2000 年 1 月 1 日的 00:00。
  2. 儘管從歷史上看不夠精確,但午夜也屬於 "am",,中午屬於 "pm",所以在同一天,12:00 am ( 午夜 ) < 12:01 am,12:00 pm ( 中午 ) < 12:01 pm。

日期或時間格式字元串不是日曆定義的一部分,因為在運行時,使用者必須能夠修改或覆寫它們。可以使用 DateFormat 格式化日期。

欄位操作

可以使用三種方法更改日曆欄位:set()add()roll()

set(f, value) 將日曆欄位 f 更改為 value。此外,它設置了一個內部成員變數,以指示日曆欄位 f 已經被更改。儘管日曆欄位 f 是立即更改的,但是直到下次調用 get()getTime()getTimeInMillis()add()roll() 時才會重新計算日曆的時間值(以毫秒為單位)。因此,多次調用 set() 不會觸發多次不必要的計算。使用 set() 更改日曆欄位的結果是,其他日曆欄位也可能發生更改,這取決於日曆欄位、日曆欄位值和日曆系統。此外,在重新計算日曆欄位之後,get(f) 沒必要通過調用 set 方法返回 value 集合。具體細節是通過具體的日曆類別確定的。

範例:假定 GregorianCalendar 最初被設置為 1999 年 8 月 31 日。調用 set(Calendar.MONTH, Calendar.SEPTEMBER) 將該日期設置為 1999 年 9 月 31 日。如果隨後調用 getTime(),那麼這是解析 1999 年 10 月 1 日的一個暫時內部表示。但是,在調用 getTime() 之前調用 set(Calendar.DAY_OF_MONTH, 30) 會將該日期設置為 1999 年 9 月 30 日,因為在調用 set() 之後沒有發生重新計算。

add(f, delta)delta 添加到 f 欄位中。這等同於調用 set(f, get(f) + delta),但要帶以下兩個調整:

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

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

此外,與 set() 不同,add() 強迫日曆系統立即重新計算日曆的毫秒數和所有欄位。

範例:假定 GregorianCalendar 最初被設置為 1999 年 8 月 31 日。調用 add(Calendar.MONTH, 13) 將日曆設置為 2000 年 9 月 30 日。Add 規則 1MONTH 欄位設置為 September,因為向 August 添加 13 個月得出的就是下一年的 September。因為在 GregorianCalendar 中,DAY_OF_MONTH 不可能是 9 月 31 日,所以 add 規則 2DAY_OF_MONTH 設置為 30,即最可能的值。儘管它是一個更小的欄位,但不能根據規則 2 調整 DAY_OF_WEEK,因為在 GregorianCalendar 中的月份發生變化時,該值也需要發生變化。

roll(f, delta)delta 添加到 f 欄位中,但不更改更大的欄位。這等同於調用 add(f, delta),但要帶以下調整:

Roll 規則。在完成調用後,更大的欄位無變化。更大的欄位表示一個更大的時間單元。DAY_OF_MONTH 是一個比 HOUR 大的欄位。

範例:請參閱 GregorianCalendar.roll(int, int)

使用模型。為了說明理解 add()roll() 的行為,假定有一個使用者介面元件,它帶有用於月、日、年和底層 GregorianCalendar 的遞增或遞減按鈕。如果從介面上讀取的日期為 1999 年 1 月 31 日,並且使用者按下月份的遞增按鈕,那麼應該得到什麼?如果底層實作使用 set(),那麼可以將該日期讀為 1999 年 3 月 3 日。更好的結果是 1999 年 2 月 28 日。此外,如果使用者再次按下月份的遞增按鈕,那麼該日期應該讀為 1999 年 3 月 31 日,而不是 1999 年 3 月 28 日。通過保存原始日期並使用 add()roll(),根據是否會影響更大的欄位,使用者介面可以像大多數使用者所期望的那樣運行。

從以下版本開始:
JDK1.1
另請參見:
System.currentTimeMillis(), Date, GregorianCalendar, TimeZone, DateFormat, 序列化表格

欄位摘要
static int ALL_STYLES
          指示所有樣式名稱的 getDisplayNames 的樣式說明符,比如 "January" 和 "Jan"。
static int AM
          指示從午夜到中午之前這段時間的 AM_PM 欄位值。
static int AM_PM
          getset 的欄位數字,指示 HOUR 是在中午之前還是在中午之後。
static int APRIL
          指示在格里高里歷和羅馬儒略歷中一年中第四個月的 MONTH 欄位值。
protected  boolean areFieldsSet
          如果 fields[] 與當前的設置時間同步,則返回 true。
static int AUGUST
          指示在格里高里歷和羅馬儒略歷中一年中第八個月的 MONTH 欄位值。
static int DATE
          getset 的欄位數字,指示一個月中的某天。
static int DAY_OF_MONTH
          getset 的欄位數字,指示一個月中的某天。
static int DAY_OF_WEEK
          getset 的欄位數字,指示一個星期中的某天。
static int DAY_OF_WEEK_IN_MONTH
          getset 的欄位數字,指示當前月中的第幾個星期。
static int DAY_OF_YEAR
          getset 的欄位數字,指示當前年中的天數。
static int DECEMBER
          指示在格里高里歷和羅馬儒略歷中一年中第十二個月的 MONTH 欄位值。
static int DST_OFFSET
          getset 的欄位數字,以毫秒為單位指示夏令時的偏移量。
static int ERA
          指示年代的 getset 的欄位數字,比如羅馬儒略歷中的 AD 或 BC。
static int FEBRUARY
          指示在格里高里歷和羅馬儒略歷中一年中第二個月的 MONTH 欄位值。
static int FIELD_COUNT
          getset 可識別的不同欄位的數量。
protected  int[] fields
          此日曆當前設置時間的日曆欄位值。
static int FRIDAY
          指示 Friday 的 DAY_OF_WEEK 欄位值。
static int HOUR
          getset 的欄位數字,指示上午或下午的小時。
static int HOUR_OF_DAY
          getset 的欄位數字,指示一天中的小時。
protected  boolean[] isSet
          通知是否設置了該日曆某一指定日曆欄位的標誌。
protected  boolean isTimeSet
          如果 time 值是一個有效值,則返回 true。
static int JANUARY
          指示在格里高里歷和羅馬儒略歷中一年中第一個月的 MONTH 欄位值。
static int JULY
          指示在格里高里歷和羅馬儒略歷中一年中第七個月的 MONTH 欄位值。
static int JUNE
          指示在格里高里歷和羅馬儒略歷中一年中第六個月的 MONTH 欄位值。
static int LONG
          指示長名稱的 getDisplayNamegetDisplayNames 的樣式說明符,比如 "January"。
static int MARCH
          指示在格里高里歷和羅馬儒略歷中一年中第三個月的 MONTH 欄位值。
static int MAY
          指示在格里高里歷和羅馬儒略歷中一年中第五個月的 MONTH 欄位值。
static int MILLISECOND
          getset 的欄位數字,指示一秒中的毫秒。
static int MINUTE
          getset 的欄位數字,指示一小時中的分鐘。
static int MONDAY
          指示 Monday 的 DAY_OF_WEEK 欄位值。
static int MONTH
          指示月份的 getset 的欄位數字。
static int NOVEMBER
          指示在格里高里歷和羅馬儒略歷中一年中第十一個月的 MONTH 欄位值。
static int OCTOBER
          指示在格里高里歷和羅馬儒略歷中一年中第十個月的 MONTH 欄位值。
static int PM
          指示從中午到午夜之前這段時間的 AM_PM 欄位值。
static int SATURDAY
          指示 Saturday 的 DAY_OF_WEEK 欄位值。
static int SECOND
          getset 的欄位數字,指示一分鐘中的秒。
static int SEPTEMBER
          指示在格里高里歷和羅馬儒略歷中一年中第九個月的 MONTH 欄位值。
static int SHORT
          指示短名稱的 getDisplayNamegetDisplayNames 的樣式說明符,比如 "Jan"。
static int SUNDAY
          指示 Sunday 的 DAY_OF_WEEK 欄位值。
static int THURSDAY
          指示 Thursday 的 DAY_OF_WEEK 欄位值。
protected  long time
          日曆的當前設置時間,以毫秒為單位,表示自格林威治標準時間 1970 年 1月 1 日 0:00:00 後經過的時間。
static int TUESDAY
          指示 Tuesday 的 DAY_OF_WEEK 欄位值。
static int UNDECIMBER
          指示一年中第十三個月的 MONTH 欄位值。
static int WEDNESDAY
          指示 Wednesday 的 DAY_OF_WEEK 欄位值。
static int WEEK_OF_MONTH
          getset 的欄位數字,指示當前月中的星期數。
static int WEEK_OF_YEAR
          getset 的欄位數字,指示當前年中的星期數。
static int YEAR
          指示年的 getset 的欄位數字。
static int ZONE_OFFSET
          getset 的欄位數字,以毫秒為單位指示距 GMT 的大致偏移量。
 
建構子摘要
protected Calendar()
          建構一個帶有預設時區和語言環境的 Calendar。
protected Calendar(TimeZone zone, Locale aLocale)
          建構一個帶有指定時區和語言環境的 Calendar。
 
方法摘要
abstract  void add(int field, int amount)
          根據日曆的規則,為給定的日曆欄位添加或減去指定的時間量。
 boolean after(Object when)
          判斷此 Calendar 表示的時間是否在指定 Object 表示的時間之後,返回判斷結果。
 boolean before(Object when)
          判斷此 Calendar 表示的時間是否在指定 Object 表示的時間之前,返回判斷結果。
 void clear()
          將此 Calendar 的所日曆欄位值和時間值(從歷元至現在的毫秒偏移量)設置成未定義。
 void clear(int field)
          將此 Calendar 的給定日曆欄位值和時間值(從歷元至現在的毫秒偏移量)設置成未定義。
 Object clone()
          創建並返回此物件的一個副本。
 int compareTo(Calendar anotherCalendar)
          比較兩個 Calendar 物件表示的時間值(從歷元至現在的毫秒偏移量)。
protected  void complete()
          填充日曆欄位中所有未設置的欄位。
protected abstract  void computeFields()
          將當前毫秒時間值 time 轉換為 fields[] 中的日曆欄位值。
protected abstract  void computeTime()
          將 fields[] 中的當前日曆欄位值轉換為毫秒時間值 time
 boolean equals(Object obj)
          將此 Calendar 與指定 Object 比較。
 int get(int field)
          返回給定日曆欄位的值。
 int getActualMaximum(int field)
          給定此 Calendar 的時間值,返回指定日曆欄位可能擁有的最大值。
 int getActualMinimum(int field)
          給定此 Calendar 的時間值,返回指定日曆欄位可能擁有的最小值。
static Locale[] getAvailableLocales()
          返回所有語言環境的陣列,此類別的 getInstance 方法可以為其返回本地化的實例。
 String getDisplayName(int field, int style, Locale locale)
          返回給定 stylelocale 下的日曆 field 值的字元串表示形式。
 Map<String,Integer> getDisplayNames(int field, int style, Locale locale)
          返回給定 stylelocale 下包含日曆 field 所有名稱的 Map 及其相應欄位值。
 int getFirstDayOfWeek()
          獲取一星期的第一天;例如,在美國,這一天是 SUNDAY,而在法國,這一天是 MONDAY
abstract  int getGreatestMinimum(int field)
          返回此 Calendar 實例給定日曆欄位的最高的最小值。
static Calendar getInstance()
          使用預設時區和語言環境獲得一個日曆。
static Calendar getInstance(Locale aLocale)
          使用預設時區和指定語言環境獲得一個日曆。
static Calendar getInstance(TimeZone zone)
          使用指定時區和預設語言環境獲得一個日曆。
static Calendar getInstance(TimeZone zone, Locale aLocale)
          使用指定時區和語言環境獲得一個日曆。
abstract  int getLeastMaximum(int field)
          返回此 Calendar 實例給定日曆欄位的最低的最大值。
abstract  int getMaximum(int field)
          返回此 Calendar 實例給定日曆欄位的最大值。
 int getMinimalDaysInFirstWeek()
          獲取一年中第一個星期所需的最少天數,例如,如果定義第一個星期包含一年第一個月的第一天,則此方法將返回 1。
abstract  int getMinimum(int field)
          返回此 Calendar 實例給定日曆欄位的最小值。
 Date getTime()
          返回一個表示此 Calendar 時間值(從歷元至現在的毫秒偏移量)的 Date 物件。
 long getTimeInMillis()
          返回此 Calendar 的時間值,以毫秒為單位。
 TimeZone getTimeZone()
          獲得時區。
 int hashCode()
          返回該此日曆的雜湊碼。
protected  int internalGet(int field)
          返回給定日曆欄位的值。
 boolean isLenient()
          判斷日期/時間的解釋是否為寬鬆的。
 boolean isSet(int field)
          確定給定日曆欄位是否已經設置了一個值,其中包括因為調用 get 方法觸發內部欄位計算而導致已經設置該值的情況。
abstract  void roll(int field, boolean up)
          在給定的時間欄位上添加或減去(上/下)單個時間單元,不更改更大的欄位。
 void roll(int field, int amount)
          向指定日曆欄位添加指定(有符號的)時間量,不更改更大的欄位。
 void set(int field, int value)
          將給定的日曆欄位設置為給定值。
 void set(int year, int month, int date)
          設置日曆欄位 YEARMONTHDAY_OF_MONTH 的值。
 void set(int year, int month, int date, int hourOfDay, int minute)
          設置日曆欄位 YEARMONTHDAY_OF_MONTHHOUR_OF_DAYMINUTE 的值。
 void set(int year, int month, int date, int hourOfDay, int minute, int second)
          設置欄位 YEARMONTHDAY_OF_MONTHHOURMINUTESECOND 的值。
 void setFirstDayOfWeek(int value)
          設置一星期的第一天是哪一天;例如,在美國,這一天是 SUNDAY,而在法國,這一天是 MONDAY
 void setLenient(boolean lenient)
          指定日期/時間解釋是否是寬鬆的。
 void setMinimalDaysInFirstWeek(int value)
          設置一年中第一個星期所需的最少天數,例如,如果定義第一個星期包含一年第一個月的第一天,則使用值 1 調用此方法。
 void setTime(Date date)
          使用給定的 Date 設置此 Calendar 的時間。
 void setTimeInMillis(long millis)
          用給定的 long 值設置此 Calendar 的當前時間值。
 void setTimeZone(TimeZone value)
          使用給定的時區值來設置時區。
 String toString()
          返回此日曆的字元串表示形式。
 
從類別 java.lang.Object 繼承的方法
finalize, getClass, notify, notifyAll, wait, wait, wait
 

欄位詳細資訊

ERA

public static final int ERA
指示年代的 getset 的欄位數字,比如羅馬儒略歷中的 AD 或 BC。這是一個特定於日曆的值;請參閱子類別文檔。

另請參見:
GregorianCalendar.AD, GregorianCalendar.BC, 常數欄位值

YEAR

public static final int YEAR
指示年的 getset 的欄位數字。這是一個特定於日曆的值;請參閱子類別文檔。

另請參見:
常數欄位值

MONTH

public static final int MONTH
指示月份的 getset 的欄位數字。這是一個特定於日曆的值。在格里高里歷和羅馬儒略歷中一年中的第一個月是 JANUARY,它為 0;最後一個月取決於一年中的月份數。

另請參見:
JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER, UNDECIMBER, 常數欄位值

WEEK_OF_YEAR

public static final int WEEK_OF_YEAR
getset 的欄位數字,指示當前年中的星期數。正如 getFirstDayOfWeek()getMinimalDaysInFirstWeek() 所定義的那樣,一年中第一個星期的值為 1。子類別定義一年第一個星期之前的天數,即 WEEK_OF_YEAR 的值。

另請參見:
getFirstDayOfWeek(), getMinimalDaysInFirstWeek(), 常數欄位值

WEEK_OF_MONTH

public static final int WEEK_OF_MONTH
getset 的欄位數字,指示當前月中的星期數。正如 getFirstDayOfWeek()getMinimalDaysInFirstWeek() 所定義的那樣,一個月中第一個星期的值為 1。子類別定義一個月第一個星期之前的天數,即 WEEK_OF_MONTH 的值。

另請參見:
getFirstDayOfWeek(), getMinimalDaysInFirstWeek(), 常數欄位值

DATE

public static final int DATE
getset 的欄位數字,指示一個月中的某天。它與 DAY_OF_MONTH 是同義詞。一個月中第一天的值為 1。

另請參見:
DAY_OF_MONTH, 常數欄位值

DAY_OF_MONTH

public static final int DAY_OF_MONTH
getset 的欄位數字,指示一個月中的某天。它與 DATE 是同義詞。一個月中第一天的值為 1。

另請參見:
DATE, 常數欄位值

DAY_OF_YEAR

public static final int DAY_OF_YEAR
getset 的欄位數字,指示當前年中的天數。一年中第一天的值為 1。

另請參見:
常數欄位值

DAY_OF_WEEK

public static final int DAY_OF_WEEK
getset 的欄位數字,指示一個星期中的某天。該欄位可取的值為 SUNDAYMONDAYTUESDAYWEDNESDAYTHURSDAYFRIDAYSATURDAY

另請參見:
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, 常數欄位值

DAY_OF_WEEK_IN_MONTH

public static final int DAY_OF_WEEK_IN_MONTH
getset 的欄位數字,指示當前月中的第幾個星期。與 DAY_OF_WEEK 欄位一起使用時,就可以唯一地指定某月中的某一天。與 WEEK_OF_MONTHWEEK_OF_YEAR 不同,該欄位的值並 取決於 getFirstDayOfWeek()getMinimalDaysInFirstWeek()DAY_OF_MONTH 1 到 7 總是對應於 DAY_OF_WEEK_IN_MONTH 1814 總是對應於 DAY_OF_WEEK_IN_MONTH 2,依此類別推。DAY_OF_WEEK_IN_MONTH 0 表示 DAY_OF_WEEK_IN_MONTH 1 之前的那個星期。負值是從一個月的末尾開始逆向計數,因此,一個月的最後一個星期天被指定為 DAY_OF_WEEK = SUNDAY, DAY_OF_WEEK_IN_MONTH = -1。因為負值是逆向計數的,所以它們在月份中的對齊方式通常與正值的不同。例如,如果一個月有 31 天,那麼 DAY_OF_WEEK_IN_MONTH -1 將與 DAY_OF_WEEK_IN_MONTH 5DAY_OF_WEEK_IN_MONTH 4 的末尾相重疊。

另請參見:
DAY_OF_WEEK, WEEK_OF_MONTH, 常數欄位值

AM_PM

public static final int AM_PM
getset 的欄位數字,指示 HOUR 是在中午之前還是在中午之後。例如,在 10:04:15.250 PM 這一時刻,AM_PMPM

另請參見:
AM, PM, HOUR, 常數欄位值

HOUR

public static final int HOUR
getset 的欄位數字,指示上午或下午的小時。HOUR 用於 12 小時制時鐘 (0 - 11)。中午和午夜用 0 表示,不用 12 表示。例如,在 10:04:15.250 PM 這一時刻,HOUR 為 10。

另請參見:
AM_PM, HOUR_OF_DAY, 常數欄位值

HOUR_OF_DAY

public static final int HOUR_OF_DAY
getset 的欄位數字,指示一天中的小時。HOUR_OF_DAY 用於 24 小時制時鐘。例如,在 10:04:15.250 PM 這一時刻,HOUR_OF_DAY 為 22。

另請參見:
HOUR, 常數欄位值

MINUTE

public static final int MINUTE
getset 的欄位數字,指示一小時中的分鐘。例如,在 10:04:15.250 PM 這一時刻,MINUTE 為 4。

另請參見:
常數欄位值

SECOND

public static final int SECOND
getset 的欄位數字,指示一分鐘中的秒。例如,在 10:04:15.250 PM 這一時刻,SECOND 為 15。

另請參見:
常數欄位值

MILLISECOND

public static final int MILLISECOND
getset 的欄位數字,指示一秒中的毫秒。例如,在 10:04:15.250 PM 這一時刻,MILLISECOND 為 250。

另請參見:
常數欄位值

ZONE_OFFSET

public static final int ZONE_OFFSET
getset 的欄位數字,以毫秒為單位指示距 GMT 的大致偏移量。

如果 TimeZone 實作子類別支持歷史上用過的 GMT 偏移量更改,則此欄位可反應此 Calendar 時區的正確 GMT 偏移量值。

另請參見:
常數欄位值

DST_OFFSET

public static final int DST_OFFSET
getset 的欄位數字,以毫秒為單位指示夏令時的偏移量。

如果 TimeZone 實作子類別支持歷史上用過的 Daylight Saving Time 時間表更改,則此欄位可反應此 Calendar 時區的正確夏令時偏移量值。

另請參見:
常數欄位值

FIELD_COUNT

public static final int FIELD_COUNT
getset 可識別的不同欄位的數量。欄位編號的範圍是從 0 到 FIELD_COUNT-1

另請參見:
常數欄位值

SUNDAY

public static final int SUNDAY
指示 Sunday 的 DAY_OF_WEEK 欄位值。

另請參見:
常數欄位值

MONDAY

public static final int MONDAY
指示 Monday 的 DAY_OF_WEEK 欄位值。

另請參見:
常數欄位值

TUESDAY

public static final int TUESDAY
指示 Tuesday 的 DAY_OF_WEEK 欄位值。

另請參見:
常數欄位值

WEDNESDAY

public static final int WEDNESDAY
指示 Wednesday 的 DAY_OF_WEEK 欄位值。

另請參見:
常數欄位值

THURSDAY

public static final int THURSDAY
指示 Thursday 的 DAY_OF_WEEK 欄位值。

另請參見:
常數欄位值

FRIDAY

public static final int FRIDAY
指示 Friday 的 DAY_OF_WEEK 欄位值。

另請參見:
常數欄位值

SATURDAY

public static final int SATURDAY
指示 Saturday 的 DAY_OF_WEEK 欄位值。

另請參見:
常數欄位值

JANUARY

public static final int JANUARY
指示在格里高里歷和羅馬儒略歷中一年中第一個月的 MONTH 欄位值。

另請參見:
常數欄位值

FEBRUARY

public static final int FEBRUARY
指示在格里高里歷和羅馬儒略歷中一年中第二個月的 MONTH 欄位值。

另請參見:
常數欄位值

MARCH

public static final int MARCH
指示在格里高里歷和羅馬儒略歷中一年中第三個月的 MONTH 欄位值。

另請參見:
常數欄位值

APRIL

public static final int APRIL
指示在格里高里歷和羅馬儒略歷中一年中第四個月的 MONTH 欄位值。

另請參見:
常數欄位值

MAY

public static final int MAY
指示在格里高里歷和羅馬儒略歷中一年中第五個月的 MONTH 欄位值。

另請參見:
常數欄位值

JUNE

public static final int JUNE
指示在格里高里歷和羅馬儒略歷中一年中第六個月的 MONTH 欄位值。

另請參見:
常數欄位值

JULY

public static final int JULY
指示在格里高里歷和羅馬儒略歷中一年中第七個月的 MONTH 欄位值。

另請參見:
常數欄位值

AUGUST

public static final int AUGUST
指示在格里高里歷和羅馬儒略歷中一年中第八個月的 MONTH 欄位值。

另請參見:
常數欄位值

SEPTEMBER

public static final int SEPTEMBER
指示在格里高里歷和羅馬儒略歷中一年中第九個月的 MONTH 欄位值。

另請參見:
常數欄位值

OCTOBER

public static final int OCTOBER
指示在格里高里歷和羅馬儒略歷中一年中第十個月的 MONTH 欄位值。

另請參見:
常數欄位值

NOVEMBER

public static final int NOVEMBER
指示在格里高里歷和羅馬儒略歷中一年中第十一個月的 MONTH 欄位值。

另請參見:
常數欄位值

DECEMBER

public static final int DECEMBER
指示在格里高里歷和羅馬儒略歷中一年中第十二個月的 MONTH 欄位值。

另請參見:
常數欄位值

UNDECIMBER

public static final int UNDECIMBER
指示一年中第十三個月的 MONTH 欄位值。儘管 GregorianCalendar 沒有使用該值,但陰曆會使用。

另請參見:
常數欄位值

AM

public static final int AM
指示從午夜到中午之前這段時間的 AM_PM 欄位值。

另請參見:
常數欄位值

PM

public static final int PM
指示從中午到午夜之前這段時間的 AM_PM 欄位值。

另請參見:
常數欄位值

ALL_STYLES

public static final int ALL_STYLES
指示所有樣式名稱的 getDisplayNames 的樣式說明符,比如 "January" 和 "Jan"。

從以下版本開始:
1.6
另請參見:
SHORT, LONG, 常數欄位值

SHORT

public static final int SHORT
指示短名稱的 getDisplayNamegetDisplayNames 的樣式說明符,比如 "Jan"。

從以下版本開始:
1.6
另請參見:
LONG, 常數欄位值

LONG

public static final int LONG
指示長名稱的 getDisplayNamegetDisplayNames 的樣式說明符,比如 "January"。

從以下版本開始:
1.6
另請參見:
SHORT, 常數欄位值

fields

protected int[] fields
此日曆當前設置時間的日曆欄位值。這是一個 FIELD_COUNT 整數陣列,索引值為 ERA 到 DST_OFFSET


isSet

protected boolean[] isSet
通知是否設置了該日曆某一指定日曆欄位的標誌。新的物件沒有設置任何欄位。在第一次調用產生該欄位的某一方法後,這些欄位都將保留調用之後的設置。這是一個 FIELD_COUNT 布林值陣列,索引值為 ERA 到 DST_OFFSET


time

protected long time
日曆的當前設置時間,以毫秒為單位,表示自格林威治標準時間 1970 年 1月 1 日 0:00:00 後經過的時間。

另請參見:
isTimeSet

isTimeSet

protected boolean isTimeSet
如果 time 值是一個有效值,則返回 true。通過更改 field[] 的項,可以使時間無效。

另請參見:
time

areFieldsSet

protected boolean areFieldsSet
如果 fields[] 與當前的設置時間同步,則返回 true。如果返回 false,則在下一次試圖獲得某一欄位的值時,將強行重新計算 time 當前值中的所有欄位。

建構子詳細資訊

Calendar

protected Calendar()
建構一個帶有預設時區和語言環境的 Calendar。

另請參見:
TimeZone.getDefault()

Calendar

protected Calendar(TimeZone zone,
                   Locale aLocale)
建構一個帶有指定時區和語言環境的 Calendar。

參數:
zone - 要使用的時區
aLocale - 用於星期資料的語言環境
方法詳細資訊

getInstance

public static Calendar getInstance()
使用預設時區和語言環境獲得一個日曆。返回的 Calendar 基於當前時間,使用了預設時區和預設語言環境。

返回:
一個 Calendar。

getInstance

public static Calendar getInstance(TimeZone zone)
使用指定時區和預設語言環境獲得一個日曆。返回的 Calendar 基於當前時間,使用了給定時區和預設語言環境。

參數:
zone - 要使用的時區
返回:
一個 Calendar。

getInstance

public static Calendar getInstance(Locale aLocale)
使用預設時區和指定語言環境獲得一個日曆。返回的 Calendar 基於當前時間,使用了預設時區和給定的語言環境。

參數:
aLocale - 用於星期資料的語言環境
返回:
一個 Calendar。

getInstance

public static Calendar getInstance(TimeZone zone,
                                   Locale aLocale)
使用指定時區和語言環境獲得一個日曆。返回的 Calendar 基於當前時間,使用了給定的時區和給定的語言環境。

參數:
zone - 要使用的時區
aLocale - 用於星期資料的語言環境
返回:
一個 Calendar。

getAvailableLocales

public static Locale[] getAvailableLocales()
返回所有語言環境的陣列,此類別的 getInstance 方法可以為其返回本地化的實例。返回的陣列必須至少包含一個 Locale 實例,它等同 Locale.US

返回:
語言環境的陣列,對於該陣列,本地化的 Calendar 實例是可用的。

computeTime

protected abstract void computeTime()
fields[] 中的當前日曆欄位值轉換為毫秒時間值 time

另請參見:
complete(), computeFields()

computeFields

protected abstract void computeFields()
將當前毫秒時間值 time 轉換為 fields[] 中的日曆欄位值。這允許您將該日曆欄位值與為日曆設置的新時間同步。並 首先重新計算該時間;為了重新計算時間和欄位,請調用 complete() 方法。

另請參見:
computeTime()

getTime

public final Date getTime()
返回一個表示此 Calendar 時間值(從歷元至現在的毫秒偏移量)的 Date 物件。

返回:
表示時間值的 Date
另請參見:
setTime(Date), getTimeInMillis()

setTime

public final void setTime(Date date)
使用給定的 Date 設置此 Calendar 的時間。

註:使用 Date(Long.MAX_VALUE)Date(Long.MIN_VALUE) 調用 setTime() 可能產生來自 get() 的錯誤欄位值。

參數:
date - 給定的 Date。
另請參見:
getTime(), setTimeInMillis(long)

getTimeInMillis

public long getTimeInMillis()
返回此 Calendar 的時間值,以毫秒為單位。

返回:
當前時間,以從歷元至現在所經過的 UTC 毫秒數形式。
另請參見:
getTime(), setTimeInMillis(long)

setTimeInMillis

public void setTimeInMillis(long millis)
用給定的 long 值設置此 Calendar 的當前時間值。

參數:
millis - 新時間,以從歷元至現在所經過的 UTC 毫秒數形式。
另請參見:
setTime(Date), getTimeInMillis()

get

public int get(int field)
返回給定日曆欄位的值。在 lenient 網要下,所有日曆欄位都被標準化。在 non-lenient 網要下,所有日曆欄位都是經過驗證的,如果任何日曆欄位有超出範圍的值,則此方法拋出一個異常。標準化和驗證都是通過 complete() 方法處理的,這個過程與日曆系統有關。

參數:
field - 給定的日曆欄位。
返回:
給定日曆欄位的值。
拋出:
ArrayIndexOutOfBoundsException - 如果指定欄位超出範圍 (field < 0 || field >= FIELD_COUNT)。
另請參見:
set(int,int), complete()

internalGet

protected final int internalGet(int field)
返回給定日曆欄位的值。此方法不涉及欄位值的標準化或驗證。

參數:
field - 給定的日曆欄位。
返回:
給定日曆欄位的值。
另請參見:
get(int)

set

public void set(int field,
                int value)
將給定的日曆欄位設置為給定值。不管處於何種寬鬆性網要下,該值都不由此方法進行解釋。

參數:
field - 給定的日曆欄位。
value - 給定日曆欄位所要設置的值。
拋出:
ArrayIndexOutOfBoundsException - 如果指定欄位超出範圍 (field < 0 || field >= FIELD_COUNT),並且處於 non-lenient 網要下。
另請參見:
set(int,int,int), set(int,int,int,int,int), set(int,int,int,int,int,int), get(int)

set

public final void set(int year,
                      int month,
                      int date)
設置日曆欄位 YEARMONTHDAY_OF_MONTH 的值。保留其他日曆欄位以前的值。如果不需要這樣做,則先調用 clear()

參數:
year - 用來設置 YEAR 日曆欄位的值。
month - 用來設置 MONTH 日曆欄位的值。Month 值是基於 0 的。例如,0 表示 January。
date - 用來設置 DAY_OF_MONTH 日曆欄位的值。
另請參見:
set(int,int), set(int,int,int,int,int), set(int,int,int,int,int,int)

set

public final void set(int year,
                      int month,
                      int date,
                      int hourOfDay,
                      int minute)
設置日曆欄位 YEARMONTHDAY_OF_MONTHHOUR_OF_DAYMINUTE 的值。保留其他欄位以前的值。如果不需要這樣做,則先調用 clear()

參數:
year - 用來設置 YEAR 日曆欄位的值。
month - 用來設置 MONTH 日曆欄位的值。Month 值是基於 0 的。例如,0 表示 January。
date - 用來設置 DAY_OF_MONTH 日曆欄位的值。
hourOfDay - 用來設置 HOUR_OF_DAY 日曆欄位的值。
minute - 用來設置 MINUTE 日曆欄位的值。
另請參見:
set(int,int), set(int,int,int), set(int,int,int,int,int,int)

set

public final void set(int year,
                      int month,
                      int date,
                      int hourOfDay,
                      int minute,
                      int second)
設置欄位 YEARMONTHDAY_OF_MONTHHOURMINUTESECOND 的值。保留其他欄位以前的值。如果不需要這樣做,則先調用 clear()

參數:
year - 用來設置 YEAR 日曆欄位的值。
month - 用來設置 MONTH 日曆欄位的值。Month 值是基於 0 的。例如,0 表示 January。
date - 用來設置 DAY_OF_MONTH 日曆欄位的值。
hourOfDay - 用來設置 HOUR_OF_DAY 日曆欄位的值。
minute - 用來設置 MINUTE 日曆欄位的值。
second - 用來設置 SECOND 日曆欄位的值。
另請參見:
set(int,int), set(int,int,int), set(int,int,int,int,int)

clear

public final void clear()
將此 Calendar 的所日曆欄位值和時間值(從歷元至現在的毫秒偏移量)設置成未定義。這意味著 isSet() 對於所有的日曆欄位都將返回 false,並且日期和時間計算會將這些欄位作為從未設置的欄位對待。Calendar 實作類別可能對日期/時間計算使用欄位的特定預設值。例如,如果未定義 YEAR 欄位值,則 GregorianCalendar 會使用 1970。

另請參見:
clear(int)

clear

public final void clear(int field)
將此 Calendar 的給定日曆欄位值和時間值(從歷元至現在的毫秒偏移量)設置成未定義。這意味著 isSet(field) 將返回 false,並且日期和時間計算會將該欄位作為從未設置的欄位對待。Calendar 實作類別可能對日期和時間計算使用欄位的特定預設值。

HOUR_OF_DAYHOURAM_PM 欄位都是單獨處理的,並且應用了一天中時間的解析規則。清除其中的一個欄位不會重置此 Calendar 中的小時值。使用 set(Calendar.HOUR_OF_DAY, 0) 重置小時值。

參數:
field - 要清除的日曆欄位。
另請參見:
clear()

isSet

public final boolean isSet(int field)
確定給定日曆欄位是否已經設置了一個值,其中包括因為調用 get 方法觸發內部欄位計算而導致已經設置該值的情況。

返回:
如果給定日曆欄位已經設置了一個值,則返回 true;否則返回 false

getDisplayName

public String getDisplayName(int field,
                             int style,
                             Locale locale)
返回給定 stylelocale 下的日曆 field 值的字元串表示形式。如果沒有可用的字元串表示形式,則返回 null。如果字元串表示形式可用於給定的日曆 field,則此方法調用 get(field) 來獲取日曆 field 值。

例如,如果此 CalendarGregorianCalendar 並且其日期是 2005-01-01,那麼 MONTH 欄位的字元串表示形式在英語語言環境中將是 long 型別的 "January" 或者 short 型別的 "Jan"。然而,DAY_OF_MONTH 欄位沒有可用的字元串表示形式,並且此方法將返回 null

預設實作支持日曆欄位,DateFormatSymbols 在給定 locale 中具有此類別名稱。

參數:
field - 其字元串表示形式返回的日曆欄位
style - 應用於字元串表示形式的型別;SHORTLONG 之一。
locale - 字元串表示形式的語言環境
返回:
給定 style 中給定 field 的字元串表示形式;如果沒有可用的字元串表示形式,則返回 null
拋出:
IllegalArgumentException - 如果 fieldstyle 無效,如果此 Calendar 處於 non-lenient 網要並且所有日曆欄位都有無效值
NullPointerException - 如果 locale 為 null
從以下版本開始:
1.6

getDisplayNames

public Map<String,Integer> getDisplayNames(int field,
                                           int style,
                                           Locale locale)
返回給定 stylelocale 下包含日曆 field 所有名稱的 Map 及其相應欄位值。例如,如果此 CalendarGregorianCalendar,則在英語語言環境的 short 型別中的返回映射將包含 "Jan" 到 JANUARY,"Feb" 到 FEBRUARY 諸如此類別。

可以考慮用其他日曆欄位值來確定顯示名稱集。例如,如果此 Calendar 是月與日的日曆系統並且由 YEAR 欄位給定的年值有閏月,此方法將返回包含閏月名稱的月名稱,並且月名稱被映射到該年中其指定值。

預設實作支持 DateFormatSymbols 中包含的顯示名稱。例如,如果 fieldMONTH 並且 styleALL_STYLES,則此方法返回包含 DateFormatSymbols.getShortMonths()DateFormatSymbols.getMonths() 返回的所有字元串的 Map

參數:
field - 其返回顯示名稱的日曆欄位
style - 應用於顯示名稱的樣式;SHORTLONGALL_STYLES 之一。
locale - 顯示名稱的語言環境
返回:
包含 stylelocale 下的所有顯示名稱的 Map 及其欄位值;如果沒有顯示名稱,則返回 null
拋出:
IllegalArgumentException - 如果 fieldstyle 無效,如果此 Calendar 處於 non-lenient 網要並且所有日曆欄位都有無效值
NullPointerException - 如果 locale 為 null
從以下版本開始:
1.6

complete

protected void complete()
填充日曆欄位中所有未設置的欄位。首先,如果已經從日曆欄位值中計算出了時間值(從歷元至現在的毫秒偏移量),則調用 computeTime() 方法。然後調用 computeFields() 方法來計算所有的日曆欄位值。


equals

public boolean equals(Object obj)
將此 Calendar 與指定 Object 比較。當且僅當參數是同一日曆系統的 Calendar 物件時,結果才為 true,該日曆系統將同一 Calendar 參數下的同一時間值(從歷元至現在的毫秒偏移量)表示為此物件。

Calendar 參數是通過 isLenientgetFirstDayOfWeekgetMinimalDaysInFirstWeekgetTimeZone 方法表示的值。如果在兩個 Calendar 之間這些參數中存在任何不同之處,則此方法返回 false

使用 compareTo 方法來僅對時間值進行比較。

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

hashCode

public int hashCode()
返回該此日曆的雜湊碼。

覆寫:
類別 Object 中的 hashCode
返回:
此物件的雜湊碼值。
從以下版本開始:
1.2
另請參見:
Object.equals(java.lang.Object), Hashtable

before

public boolean before(Object when)
判斷此 Calendar 表示的時間是否在指定 Object 表示的時間之前,返回判斷結果。此方法等效於:
compareTo(when) < 0
當且僅當 when 是一個 Calendar 實例時才返回 true。否則該方法返回 false

參數:
when - 要比較的 Object
返回:
如果此 Calendar 的時間在 when 表示的時間之前,則返回 true;否則返回 false
另請參見:
compareTo(Calendar)

after

public boolean after(Object when)
判斷此 Calendar 表示的時間是否在指定 Object 表示的時間之後,返回判斷結果。此方法等效於:
compareTo(when) > 0
當且僅當 when 是一個 Calendar 實例時才返回 true。否則該方法返回 false

參數:
when - 要比較的 Object
返回:
如果此 Calendar 的時間在 when 表示的時間之後,則返回 true;否則返回 false
另請參見:
compareTo(Calendar)

compareTo

public int compareTo(Calendar anotherCalendar)
比較兩個 Calendar 物件表示的時間值(從歷元至現在的毫秒偏移量)。

指定者:
介面 Comparable<Calendar> 中的 compareTo
參數:
anotherCalendar - 要比較的 Calendar
返回:
如果參數表示的時間等於此 Calendar 表示的時間,則返回 0 值;如果此 Calendar 的時間在參數表示的時間之前,則返回小於 0 的值;如果此 Calendar 的時間在參數表示的時間之後,則返回大於 0 的值。
拋出:
NullPointerException - 如果指定的 Calendarnull
IllegalArgumentException - 如果因為無效的日曆值而無法獲得指定 Calendar 物件的時間值。
從以下版本開始:
1.5

add

public abstract void add(int field,
                         int amount)
根據日曆的規則,為給定的日曆欄位添加或減去指定的時間量。例如,要從當前日曆時間減去 5 天,可以通過調用以下方法做到這一點:

add(Calendar.DAY_OF_MONTH, -5)

參數:
field - 日曆欄位。
amount - 為欄位添加的日期或時間量。
另請參見:
roll(int,int), set(int,int)

roll

public abstract void roll(int field,
                          boolean up)
在給定的時間欄位上添加或減去(上/下)單個時間單元,不更改更大的欄位。例如,要將當前日期向上滾動一天,可以通過調用以下方法做到這一點:

roll(Calendar.DATE, true)。在 year 或 Calendar.YEAR 欄位上滾動時,將在從 1 到調用 getMaximum(Calendar.YEAR) 的返回值之間的範圍內滾動 year 值。在 month 或 Calendar.MONTH 欄位上滾動時,其他欄位(如 date)可能發生衝突,因此需要更改它們。例如,在日期 01/31/96 上滾動 month 將產生 02/29/96 的日期。在 hour-in-day 或 Calendar.HOUR_OF_DAY 欄位上滾動時,小時值會在 0 到 23 之間的範圍內滾動,它是基於 0 的。

參數:
field - 時間欄位。
up - 指示指定時間欄位的值是向上滾動還是向下滾動。如果向上滾動,則使用 true,否則使用 false。
另請參見:
add(int,int), set(int,int)

roll

public void roll(int field,
                 int amount)
向指定日曆欄位添加指定(有符號的)時間量,不更改更大的欄位。負的時間量意味著向下滾動。

註:Calendar 上的此預設實作只是重複地調用滾動一個單元的 roll() 版本。這可能並非總是正確的。例如,如果 DAY_OF_MONTH 欄位為 31,則在 February 的範圍內滾動會將它設置為 28。此函數的 GregorianCalendar 版本會小心地處理這個問題。其他子類別還應該提供此函數的覆寫版本,以正確實作該功能。

參數:
field - 日曆欄位。
amount - 要添加到日曆 field 中的有符號時間量。
從以下版本開始:
1.2
另請參見:
roll(int,boolean), add(int,int), set(int,int)

setTimeZone

public void setTimeZone(TimeZone value)
使用給定的時區值來設置時區。

參數:
value - 給定的時區。

getTimeZone

public TimeZone getTimeZone()
獲得時區。

返回:
與此日曆有關的時區物件。

setLenient

public void setLenient(boolean lenient)
指定日期/時間解釋是否是寬鬆的。對於寬鬆的解釋,可以將諸如 "February 942, 1996" 之類別的日期視為等同於 1996 年 1 月 1 日後的第 941 天。而對於嚴格的(non-lenient)解釋,這樣的日期會導致拋出異常。預設情況下是寬鬆的。

參數:
lenient - 如果開啟 lenient 網要,則為 true;如果關閉此網要,則為 false
另請參見:
isLenient(), DateFormat.setLenient(boolean)

isLenient

public boolean isLenient()
判斷日期/時間的解釋是否為寬鬆的。

返回:
如果此日曆的解釋網要是 lenient,則返回 true;否則返回 false
另請參見:
setLenient(boolean)

setFirstDayOfWeek

public void setFirstDayOfWeek(int value)
設置一星期的第一天是哪一天;例如,在美國,這一天是 SUNDAY,而在法國,這一天是 MONDAY

參數:
value - 給出的一星期的第一天。
另請參見:
getFirstDayOfWeek(), getMinimalDaysInFirstWeek()

getFirstDayOfWeek

public int getFirstDayOfWeek()
獲取一星期的第一天;例如,在美國,這一天是 SUNDAY,而在法國,這一天是 MONDAY

返回:
一星期的第一天。
另請參見:
setFirstDayOfWeek(int), getMinimalDaysInFirstWeek()

setMinimalDaysInFirstWeek

public void setMinimalDaysInFirstWeek(int value)
設置一年中第一個星期所需的最少天數,例如,如果定義第一個星期包含一年第一個月的第一天,則使用值 1 調用此方法。如果最少天數必須是一整個星期,則使用值 7 調用此方法。

參數:
value - 一年中第一個星期所需的給定最少天數。
另請參見:
getMinimalDaysInFirstWeek()

getMinimalDaysInFirstWeek

public int getMinimalDaysInFirstWeek()
獲取一年中第一個星期所需的最少天數,例如,如果定義第一個星期包含一年第一個月的第一天,則此方法將返回 1。如果最少天數必須是一整個星期,則此方法將返回 7。

返回:
一年中第一個星期所需的最少天數。
另請參見:
setMinimalDaysInFirstWeek(int)

getMinimum

public abstract int getMinimum(int field)
返回此 Calendar 實例給定日曆欄位的最小值。最小值被定義為 get 方法為任何可能時間值返回的最小值。最小值取決於日曆系統實例的特定參數。

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

getMaximum

public abstract int getMaximum(int field)
返回此 Calendar 實例給定日曆欄位的最大值。最大值被定義為 get 方法為任何可能時間值返回的最大值。最大值取決於日曆系統實例的特定參數。

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

getGreatestMinimum

public abstract int getGreatestMinimum(int field)
返回此 Calendar 實例給定日曆欄位的最高的最小值。最高的最小值被定義為 getActualMinimum(int) 方法為任何可能時間值返回的最大值。最高的最小值取決於日曆系統實例的特定參數。

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

getLeastMaximum

public abstract int getLeastMaximum(int field)
返回此 Calendar 實例給定日曆欄位的最低的最大值。最低的最大值被定義為 getActualMaximum(int) 方法為任何可能時間值返回的最小值。最低的最大值取決於日曆系統實例的特定參數。例如,對於格里高里歷系統,Calendar 將為 DAY_OF_MONTH 欄位返回 28,因為第 28 天是該日曆最短那個月的最後一天,即普通年的二月。

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

getActualMinimum

public int getActualMinimum(int field)
給定此 Calendar 的時間值,返回指定日曆欄位可能擁有的最小值。

此方法的預設實作使用了一個迭代演算法來確定日曆欄位的實際最小值。如果可能的話,子類別應該使用更有效的實作來覆寫此方法——在許多情況下,它們只是簡單地返回 getMinimum()

參數:
field - 日曆欄位
返回:
對於此 Calendar 的時間值而言,給定日曆欄位的最小值
從以下版本開始:
1.2
另請參見:
getMinimum(int), getMaximum(int), getGreatestMinimum(int), getLeastMaximum(int), getActualMaximum(int)

getActualMaximum

public int getActualMaximum(int field)
給定此 Calendar 的時間值,返回指定日曆欄位可能擁有的最大值。例如,在某些年份中,MONTH 欄位的實際最大值是 12,而在希伯來日曆系統的其他年份中,該欄位的實際最大值是 13。

此方法的預設實作使用了一個迭代演算法來確定日曆欄位的實際最大值。如果有可能的話,子類別應該使用一個更有效的實作來覆寫此方法。

參數:
field - 日曆欄位
返回:
對於此 Calendar 的時間值而言,給定日曆欄位的最大值
從以下版本開始:
1.2
另請參見:
getMinimum(int), getMaximum(int), getGreatestMinimum(int), getLeastMaximum(int), getActualMaximum(int)

clone

public Object clone()
創建並返回此物件的一個副本。

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

toString

public String toString()
返回此日曆的字元串表示形式。此方法僅在進行除錯的時候使用,不同實作之間所返回的字元串格式可能有所不同。返回的字元串可能為空,但不可能為 null

覆寫:
類別 Object 中的 toString
返回:
此日曆的字元串表示形式。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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