Calendar

java.util 
類 Calendar

java.lang.Object
  

繼承者

java.util.Calendar
全部已實現的接口:
SerializableCloneableComparableCalendar>
直接已知子類:
GregorianCalendar

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

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

該類還爲實現包範圍外的具體日曆系統提供了其餘字段和方法。這些字段和方法被定義爲 protectedjava

與其餘語言環境敏感類同樣,Calendar 提供了一個類方法 getInstance,以得到此類型的一個通用的對象。Calendar 的 getInstance 方法返回一個Calendar 對象,其日曆字段已由當前日期和時間初始化:算法

     Calendar rightNow = Calendar.getInstance();
 

Calendar 對象可以生成爲特定語言和日曆風格實現日期-時間格式化所需的全部日曆字段值,例如,日語-格里高裏歷,日語-傳統日曆。Calendar 定義了某些日曆字段返回值的範圍,以及這些值的含義。例如,對於全部日曆,日曆系統第一個月的值是 MONTH == JANUARY。其餘值是由具體子類(例如 ERA)定義的。有關此內容的細節,請參閱每一個字段的文檔和子類文檔。api

得到並設置日曆字段值

能夠經過調用 set 方法來設置日曆字段值。在須要計算時間值(距曆元所通過的毫秒)或日曆字段值以前,不會解釋 Calendar 中的全部字段值設置。調用 getgetTimeInMillisgetTimeadd 和 roll 涉及此類計算。數組

寬鬆性

Calendar 有兩種解釋日曆字段的模式,即 lenient 和 non-lenient。當 Calendar 處於 lenient 模式時,它可接受比它所生成的日曆字段範圍更大範圍內的值。當 Calendar 從新計算日曆字段值,以便由 get() 返回這些值時,全部日曆字段都被標準化。例如,lenient 模式下的GregorianCalendar 將 MONTH == JANUARYDAY_OF_MONTH == 32 解釋爲 February 1。函數

當 Calendar 處於 non-lenient 模式時,若是其日曆字段中存在任何不一致性,它都會拋出一個異常。例如,GregorianCalendar 老是在 1 與月份的長度之間生成 DAY_OF_MONTH 值。若是已經設置了任何超出範圍的字段值,那麼在計算時間或日曆字段值時,處於 non-lenient 模式下的GregorianCalendar 會拋出一個異常。spa

第一個星期

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

在設置或得到 WEEK_OF_MONTH 或 WEEK_OF_YEAR 字段時,Calendar 必須肯定一個月或一年的第一個星期,以此做爲參考點。一個月或一年的第一個星期被肯定爲開始於 getFirstDayOfWeek() 的最先七天,它最少包含那一個月或一年的 getMinimalDaysInFirstWeek() 天數。第一個星期以前的各星期編號爲 ...、-一、0;以後的星期編號爲 二、三、...。注意,get() 返回的標準化編號方式可能有所不一樣。例如,特定 Calendar 子類可能將某一年第 1 個星期以前的那個星期指定爲前一年的第 n 個星期。調試

日曆字段解析

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

若是日曆字段值中存在任何衝突,則 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 規則 1 將 MONTH 字段設置爲 September,由於向 August 添加 13 個月得出的就是下一年的 September。由於在 GregorianCalendar 中,DAY_OF_MONTH 不多是 9 月 31 日,因此 add 規則 2 將 DAY_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()DateGregorianCalendarTimeZoneDateFormat序列化表格

字段摘要
static int ALL_STYLES 
          指示全部風格名稱的 getDisplayNames 的風格說明符,好比 "January" 和 "Jan"。
static int AM 
          指示從午夜到中午以前這段時間的 AM_PM 字段值。
static int AM_PM 
          get 和 set 的字段數字,指示 HOUR 是在中午以前仍是在中午以後。
static int APRIL 
          指示在格里高利曆和羅馬儒略曆中一年中第四個月的 MONTH 字段值。
protected  boolean areFieldsSet 
          若是 fields[] 與當前的設置時間同步,則返回 true。
static int AUGUST 
          指示在格里高利曆和羅馬儒略曆中一年中第八個月的 MONTH 字段值。
static int DATE 
          get 和 set 的字段數字,指示一個月中的某天。
static int DAY_OF_MONTH 
          get 和 set 的字段數字,指示一個月中的某天。
static int DAY_OF_WEEK 
          get 和 set 的字段數字,指示一個星期中的某天。
static int DAY_OF_WEEK_IN_MONTH 
          get 和 set 的字段數字,指示當前月中的第幾個星期。
static int DAY_OF_YEAR 
          get 和 set 的字段數字,指示當前年中的天數。
static int DECEMBER 
          指示在格里高利曆和羅馬儒略曆中一年中第十二個月的 MONTH 字段值。
static int DST_OFFSET 
          get 和 set 的字段數字,以毫秒爲單位指示夏令時的偏移量。
static int ERA 
          指示年代的 get 和 set 的字段數字,好比羅馬儒略曆中的 AD 或 BC。
static int FEBRUARY 
          指示在格里高利曆和羅馬儒略曆中一年中第二個月的 MONTH 字段值。
static int FIELD_COUNT 
          get 和 set 可識別的不一樣字段的數量。
protected  int[] fields 
          此日曆當前設置時間的日曆字段值。
static int FRIDAY 
          指示 Friday 的 DAY_OF_WEEK 字段值。
static int HOUR 
          get 和 set 的字段數字,指示上午或下午的小時。
static int HOUR_OF_DAY 
          get 和 set 的字段數字,指示一天中的小時。
protected  boolean[] isSet 
          通知是否設置了該日曆某一指定日曆字段的標誌。
protected  boolean isTimeSet 
          若是 time 值是一個有效值,則返回 true。
static int JANUARY 
          指示在格里高利曆和羅馬儒略曆中一年中第一個月的 MONTH 字段值。
static int JULY 
          指示在格里高利曆和羅馬儒略曆中一年中第七個月的 MONTH 字段值。
static int JUNE 
          指示在格里高利曆和羅馬儒略曆中一年中第六個月的 MONTH 字段值。
static int LONG 
          指示長名稱的 getDisplayName 和 getDisplayNames 的風格說明符,好比 "January"。
static int MARCH 
          指示在格里高利曆和羅馬儒略曆中一年中第三個月的 MONTH 字段值。
static int MAY 
          指示在格里高利曆和羅馬儒略曆中一年中第五個月的 MONTH 字段值。
static int MILLISECOND 
          get 和 set 的字段數字,指示一秒中的毫秒。
static int MINUTE 
          get 和 set 的字段數字,指示一小時中的分鐘。
static int MONDAY 
          指示 Monday 的 DAY_OF_WEEK 字段值。
static int MONTH 
          指示月份的 get 和 set 的字段數字。
static int NOVEMBER 
          指示在格里高利曆和羅馬儒略曆中一年中第十一個月的 MONTH 字段值。
static int OCTOBER 
          指示在格里高利曆和羅馬儒略曆中一年中第十個月的 MONTH 字段值。
static int PM 
          指示從中午到午夜以前這段時間的 AM_PM 字段值。
static int SATURDAY 
          指示 Saturday 的 DAY_OF_WEEK 字段值。
static int SECOND 
          get 和 set 的字段數字,指示一分鐘中的秒。
static int SEPTEMBER 
          指示在格里高利曆和羅馬儒略曆中一年中第九個月的 MONTH 字段值。
static int SHORT 
          指示短名稱的 getDisplayName 和 getDisplayNames 的風格說明符,好比 "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 
          get 和 set 的字段數字,指示當前月中的星期數。
static int WEEK_OF_YEAR 
          get 和 set 的字段數字,指示當前年中的星期數。
static int YEAR 
          指示年的 get 和 set 的字段數字。
static int ZONE_OFFSET 
          get 和 set 的字段數字,以毫秒爲單位指示距 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) 
          返回給定 style 和 locale 下的日曆 field 值的字符串表示形式。
 Map<String,Integer> getDisplayNames(int field, int style, Locale locale) 
          返回給定 style 和 locale 下包含日曆 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) 
          設置日曆字段 YEARMONTH 和 DAY_OF_MONTH 的值。
 void set(int year, int month, int date, int hourOfDay, int minute) 
          設置日曆字段 YEARMONTHDAY_OF_MONTHHOUR_OF_DAY 和 MINUTE 的值。
 void set(int year, int month, int date, int hourOfDay, int minute, int second) 
          設置字段 YEARMONTHDAY_OF_MONTHHOURMINUTE 和 SECOND 的值。
 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 繼承的方法
finalizegetClassnotifynotifyAllwaitwaitwait

 

字段詳細信息

ERA

public static final int ERA
指示年代的  get 和  set 的字段數字,好比羅馬儒略曆中的 AD 或 BC。這是一個特定於日曆的值;請參閱子類文檔。

 

另請參見:
GregorianCalendar.ADGregorianCalendar.BC常量字段值

YEAR

public static final int YEAR
指示年的  get 和  set 的字段數字。這是一個特定於日曆的值;請參閱子類文檔。

 

另請參見:
常量字段值

MONTH

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

 

另請參見:
JANUARYFEBRUARYMARCHAPRILMAYJUNEJULYAUGUSTSEPTEMBEROCTOBERNOVEMBERDECEMBERUNDECIMBER常量字段值

WEEK_OF_YEAR

public static final int WEEK_OF_YEAR
get 和  set 的字段數字,指示當前年中的星期數。正如  getFirstDayOfWeek() 和  getMinimalDaysInFirstWeek() 所定義的那樣,一年中第一個星期的值爲 1。子類定義一年第一個星期以前的天數,即  WEEK_OF_YEAR 的值。

 

另請參見:
getFirstDayOfWeek()getMinimalDaysInFirstWeek()常量字段值

WEEK_OF_MONTH

public static final int WEEK_OF_MONTH
get 和  set 的字段數字,指示當前月中的星期數。正如  getFirstDayOfWeek() 和  getMinimalDaysInFirstWeek() 所定義的那樣,一個月中第一個星期的值爲 1。子類定義一個月第一個星期以前的天數,即  WEEK_OF_MONTH 的值。

 

另請參見:
getFirstDayOfWeek()getMinimalDaysInFirstWeek()常量字段值

DATE

public static final int DATE
get 和  set 的字段數字,指示一個月中的某天。它與  DAY_OF_MONTH 是同義詞。一個月中第一天的值爲 1。

 

另請參見:
DAY_OF_MONTH常量字段值

DAY_OF_MONTH

public static final int DAY_OF_MONTH
get 和  set 的字段數字,指示一個月中的某天。它與  DATE 是同義詞。一個月中第一天的值爲 1。

 

另請參見:
DATE常量字段值

DAY_OF_YEAR

public static final int DAY_OF_YEAR
get 和  set 的字段數字,指示當前年中的天數。一年中第一天的值爲 1。

 

另請參見:
常量字段值

DAY_OF_WEEK

public static final int DAY_OF_WEEK
get 和  set 的字段數字,指示一個星期中的某天。該字段可取的值爲  SUNDAY、  MONDAY、  TUESDAY、  WEDNESDAY、  THURSDAY、  FRIDAY 和 SATURDAY

 

另請參見:
SUNDAYMONDAYTUESDAYWEDNESDAYTHURSDAYFRIDAYSATURDAY常量字段值

DAY_OF_WEEK_IN_MONTH

public static final int DAY_OF_WEEK_IN_MONTH
get 和  set 的字段數字,指示當前月中的第幾個星期。與  DAY_OF_WEEK 字段一塊兒使用時,就能夠惟一地指定某月中的某一天。與  WEEK_OF_MONTH和  WEEK_OF_YEAR 不一樣,該字段的值並   取決於  getFirstDayOfWeek() 或  getMinimalDaysInFirstWeek()。  DAY_OF_MONTH 1 到  7 老是對應於 DAY_OF_WEEK_IN_MONTH 1;  8 到  14 老是對應於  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 5 和  DAY_OF_WEEK_IN_MONTH 4 的末尾相重疊。

 

另請參見:
DAY_OF_WEEKWEEK_OF_MONTH常量字段值

AM_PM

public static final int AM_PM
get 和  set 的字段數字,指示  HOUR 是在中午以前仍是在中午以後。例如,在 10:04:15.250 PM 這一時刻,  AM_PM 爲  PM

 

另請參見:
AMPMHOUR常量字段值

HOUR

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

 

另請參見:
AM_PMHOUR_OF_DAY常量字段值

HOUR_OF_DAY

public static final int HOUR_OF_DAY
get 和  set 的字段數字,指示一天中的小時。  HOUR_OF_DAY 用於 24 小時制時鐘。例如,在 10:04:15.250 PM 這一時刻,  HOUR_OF_DAY 爲 22。

 

另請參見:
HOUR常量字段值

MINUTE

public static final int MINUTE
get 和  set 的字段數字,指示一小時中的分鐘。例如,在 10:04:15.250 PM 這一時刻,  MINUTE 爲 4。

 

另請參見:
常量字段值

SECOND

public static final int SECOND
get 和  set 的字段數字,指示一分鐘中的秒。例如,在 10:04:15.250 PM 這一時刻,  SECOND 爲 15。

 

另請參見:
常量字段值

MILLISECOND

public static final int MILLISECOND
get 和  set 的字段數字,指示一秒中的毫秒。例如,在 10:04:15.250 PM 這一時刻,  MILLISECOND 爲 250。

 

另請參見:
常量字段值

ZONE_OFFSET

public static final int ZONE_OFFSET
get 和  set 的字段數字,以毫秒爲單位指示距 GMT 的大體偏移量。

若是 TimeZone 實現子類支持歷史上用過的 GMT 偏移量更改,則此字段可反應此 Calendar 時區的正確 GMT 偏移量值。

 

另請參見:
常量字段值

DST_OFFSET

public static final int DST_OFFSET
get 和  set 的字段數字,以毫秒爲單位指示夏令時的偏移量。

若是 TimeZone 實現子類支持歷史上用過的 Daylight Saving Time 時間表更改,則此字段可反應此 Calendar 時區的正確夏令時偏移量值。

 

另請參見:
常量字段值

FIELD_COUNT

public static final int FIELD_COUNT
get 和  set 可識別的不一樣字段的數量。字段編號的範圍是從 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
另請參見:
SHORTLONG常量字段值

SHORT

public static final int SHORT
指示短名稱的  getDisplayName 和  getDisplayNames 的風格說明符,好比 "Jan"。

 

從如下版本開始:
1.6
另請參見:
LONG常量字段值

LONG

public static final int LONG
指示長名稱的  getDisplayName 和  getDisplayNames 的風格說明符,好比 "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)
設置日曆字段  YEAR、  MONTH 和  DAY_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)
設置日曆字段  YEAR、  MONTH、  DAY_OF_MONTH、  HOUR_OF_DAY 和  MINUTE 的值。保留其餘字段之前的值。若是不須要這樣作,則先調用  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)
設置字段  YEAR、  MONTH、  DAY_OF_MONTH、  HOUR、  MINUTE 和  SECOND 的值。保留其餘字段之前的值。若是不須要這樣作,則先調用  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_DAYHOUR 和 AM_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)
返回給定  style 和  locale 下的日曆  field 值的字符串表示形式。若是沒有可用的字符串表示形式,則返回  null。若是字符串表示形式可用於給定的日曆  field,則此方法調用  get(field) 來獲取日曆  field 值。

例如,若是此 Calendar 是 GregorianCalendar 而且其日期是 2005-01-01,那麼 MONTH 字段的字符串表示形式在英語語言環境中將是 long 類型的 "January" 或者 short 類型的 "Jan"。然而,DAY_OF_MONTH 字段沒有可用的字符串表示形式,而且此方法將返回 null

默認實現支持日曆字段,DateFormatSymbols 在給定 locale 中具備此類名稱。

 

參數:
field - 其字符串表示形式返回的日曆字段
style - 應用於字符串表示形式的類型;  SHORT 或  LONG 之一。
locale - 字符串表示形式的語言環境
返回:
給定  style 中給定  field 的字符串表示形式;若是沒有可用的字符串表示形式,則返回  null
拋出:
IllegalArgumentException - 若是  field 或  style 無效,若是此  Calendar 處於 non-lenient 模式而且全部日曆字段都有無效值
NullPointerException - 若是  locale 爲 null
從如下版本開始:
1.6

getDisplayNames

public Map<String,Integer> getDisplayNames(int field,
                                           int style,
                                           Locale locale)
返回給定  style 和  locale 下包含日曆  field 全部名稱的  Map 及其相應字段值。例如,若是此  Calendar 是  GregorianCalendar,則在英語語言環境的  short 類型中的返回映射將包含 "Jan" 到  JANUARY,"Feb" 到  FEBRUARY 諸如此類。

能夠考慮用其餘日曆字段值來肯定顯示名稱集。例如,若是此 Calendar 是月與日的日曆系統而且由 YEAR 字段給定的年值有閏月,此方法將返回包含閏月名稱的月名稱,而且月名稱被映射到該年中其指定值。

默認實現支持 DateFormatSymbols 中包含的顯示名稱。例如,若是 field 是 MONTH 而且 style 是 ALL_STYLES,則此方法返回包含DateFormatSymbols.getShortMonths() 和 DateFormatSymbols.getMonths() 返回的全部字符串的 Map

 

參數:
field - 其返回顯示名稱的日曆字段
style - 應用於顯示名稱的風格;  SHORT、  LONG 或  ALL_STYLES 之一。
locale - 顯示名稱的語言環境
返回:
包含  style 和  locale 下的全部顯示名稱的  Map 及其字段值;若是沒有顯示名稱,則返回  null
拋出:
IllegalArgumentException - 若是  field 或  style 無效,若是此  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 參數是經過 isLenientgetFirstDayOfWeekgetMinimalDaysInFirstWeek 和 getTimeZone 方法表示的值。若是在兩個 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 - 若是指定的  Calendar 爲  null
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
返回:
此日曆的字符串表示形式。
相關文章
相關標籤/搜索