Java日期和時間JDK—API1.6.0(Date類、Calendar類)
java.util,Date
Java在java.util包中提供了Date類,這個類封裝了當前的日期和時間:
- 所有已經實現的介面:Serializable Cloneable Comparable<Date>
- 直接已知子類: Date Time Timestamp
public class Date
extends Object
implements Serializable , Cloneable , Comparable<Date>
類 Date
表示特定的瞬間,精確到毫秒。
在 JDK 1.1 之前,類 Date
有兩個其他的函式。它允許把日期解釋為年、月、日、小時、分鐘和秒值。它也允許格式化和解析日期字串。不過,這些函式的 API 不易於實現國際化。從 JDK 1.1 開始,應該使用 Calendar
類實現日期和時間欄位之間轉換,使用 DateFormat
類來格式化和解析日期字串。Date
中的相應方法已廢棄。
儘管 Date
一些計算機標準是按照格林威治標準時 (GMT) 定義的,格林威治標準時和世界時 (UT) 是相等的。GMT 是標準的“民間”名稱;UT 是相同標準的“科學”名稱。UTC 和 UT 的區別是:UTC 是基於原子時鐘的,UT 是基於天體觀察的,兩者在實際應用中難分軒輊。因為地球的旋轉不是均勻的(它以複雜的方式減速和加速),所以 UT 始終不是均勻地流過。閏秒是根據需要引入 UTC 的,以便把 UTC 保持在 UT1 的 0.9 秒之內,UT1 是應用了某些更正的 UT 版本。還有其他的時間和日期系統;例如,基於衛星的全球定位系統 (GPS) 使用的時間刻度與 UTC 同步,但沒有
在類 Date
所有可以接受或返回年、月、日期、小時、分鐘和秒值的方法中,將使用下面的表示形式:
- 年份 y 由整數 y
- 1900
表示。 - 月份由從 0 至 11 的整數表示;0 是一月、1 是二月等等;因此 11 是十二月。
- 日期(一月中的某天)按通常方式由整數 1 至 31 表示。
- 小時由從 0 至 23 的整數表示。因此,從午夜到 1 a.m. 的時間是 0 點,從中午到 1 p.m. 的時間是 12 點。
- 分鐘按通常方式由 0 至 59 的整數表示。
- 秒由 0 至 61 的整數表示;值 60 和 61 只對閏秒發生,儘管那樣,也只用在實際正確跟蹤閏秒的 Java 實現中。於按當前引入閏秒的方式,兩個閏秒在同一分鐘內發生是極不可能的,但此規範遵循 ISO C 的日期和時間約定。
在所有情形中,針對這些目的賦予方法的引數不需要在指定的範圍內;例如,可以把日期指定為 1 月 32 日,並把它解釋為 2 月 1 日的相同含義。
另請參見:DateFormat
, Calendar
, TimeZone
, 序列化表格
Date類的構造方法摘要:
方 法 | 說 明 |
Date() |
分配 |
Date(long date) |
分配 |
方法摘要:一旦有一個可用的日期物件,可以呼叫以下任何一種支援的方法使用時間:
方 法 | 描 述 |
---|---|
boolean after(Date date) | 如果呼叫Date物件包含或晚於指定的日期則返回true,否則,返回false。 |
boolean before(Date date) | 如果呼叫Date物件包含或早於日期指定的日期返回true,否則,返回false。 |
Object clone( ) | 重複呼叫Date物件。 |
int compareTo(Date date) | 呼叫物件的值與日期比較。如果這兩個值相等返回0。如果呼叫物件是早於日期返回一個負值。如果呼叫物件遲於日期返回正值。 |
int compareTo(Object obj) | 以相同的compareTo(Date)操作 如果obj是一個類日期。否則,它會丟擲一個ClassCastException。 |
boolean equals(Object date) | 如果呼叫Date物件包含相同的時間及日期指定日期則返回true,否則,返回false。 |
long getTime( ) | 返回自1970年1月1日起已經過的毫秒數。 |
int hashCode( ) | 返回呼叫物件的雜湊程式碼。 |
void setTime(long time) | 設定所指定的時間,這表示從1970年1月1日從午夜的時間和日期以毫秒為單位經過的時間。 |
String toString( ) | 呼叫Date物件轉換為字串,並返回結果。 |
從類 java.lang.Object 繼承的方法 |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
構造方法詳細資訊
Date
public Date()
分配 Date
物件並初始化此物件,以表示分配它的時間(精確到毫秒)。
Date
public Date(long date)
分配 Date
物件並初始化此物件,以表示自從標準基準時間(稱為“曆元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以來的指定毫秒數。
引數:date
- 自 1970 年 1 月 1 日 00:00:00 GMT 以來的毫秒數。
另請參見:System.currentTimeMillis()
方法詳細資訊
clone
public Object clone() 返回此物件的副本。
返回:此例項的一個副本。
另請參見:Cloneable
getTime
public long getTime() 返回自 1970 年 1 月 1 日 00:00:00 GMT 以來此 Date 物件表示的毫秒數。
返回: 自 1970 年 1 月 1 日 00:00:00 GMT 以來此日期表示的毫秒數。
setTime
public void setTime(long time) 設定此 Date 物件,以表示 1970 年 1 月 1 日 00:00:00 GMT 以後 time 毫秒的時間點。
引數:time
- 毫秒數。
before
public boolean before(Date when) 測試此日期是否在指定日期之前。
引數:when
- 日期。
返回:當且僅當此 Date 物件表示的瞬間比 when 表示的瞬間早,才返回 true
;否則返回 false
。
丟擲:NullPointerException
- 如果 when
為 null。
after
public boolean after(Date when) 測試此日期是否在指定日期之後。
引數:when
- 日期。
返回:當且僅當此 Date 物件表示的瞬間比 when 表示的瞬間晚,才返回 true
;否則返回 false
。
丟擲:NullPointerException
- 如果 when
為 null。
equals
public boolean equals(Object obj)
比較兩個日期的相等性。當且僅當引數不為 null
,並且是一個表示與此物件相同的時間點(到毫秒)的 Date
物件時,結果才為 true
。因此,當且僅當 getTime
方法對於兩個 Date
物件返回相同的 long
值時,這兩個物件才是相等的。
引數:obj
- 要與之比較的物件。
返回:如果物件相同,則返回 true
;否則,返回 false
。
另請參見:getTime()
compareTo
public int compareTo(Date anotherDate) 比較兩個日期的順序。
指定者:介面 Comparable<Date>
中的 compareTo
引數:anotherDate
- 要比較的 Date
。
返回:如果引數 Date 等於此 Date,則返回值 0
;如果此 Date 在 Date 引數之前,則返回小於 0
的值;如果此 Date 在 Date 引數之後,則返回大於 0
的值。
丟擲:NullPointerException
- 如果 anotherDate
為 null。
從以下版本開始:1.2
hashCode
public int hashCode()
返回此物件的雜湊碼值。結果是 getTime()
方法返回的基本 long 值的兩部分的異或。也就是說,雜湊碼就是以下表達式的值:
(int)(this.getTime()^(this.getTime() >>> 32))
返回:此物件的雜湊碼值。
另請參見:Object.equals(java.lang.Object)
, Hashtable
toString
public String toString()
把此 Date
物件轉換為以下形式的 String
:
dow mon dd hh:mm:ss zzz yyyy
其中:
- dow 是一週中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)。
- mon 是月份 (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec)。
- dd 是一月中的某一天(01 至 31),顯示為兩位十進位制數。
- hh 是一天中的小時(00 至 23),顯示為兩位十進位制數。
- mm 是小時中的分鐘(00 至 59),顯示為兩位十進位制數。
- ss 是分鐘中的秒數(00 至 61),顯示為兩位十進位制數。
- zzz 是時區(並可以反映夏令時)。標準時區縮寫包括方法 parse 識別的時區縮寫。如果不提供時區資訊,則 zzz 為空,即根本不包括任何字元。
- yyyy 是年份,顯示為 4 位十進位制數。
返回:此日期的字串表示形式。
另請參見:toLocaleString()
, toGMTString()
java.util.Calendar Calendar類
所有已實現的介面:
Serializable, Cloneable, Comparable<Calendar>
直接已知子類:
public abstract class Calendar
extends Object
implements Serializable, Cloneable, Comparable<Calendar>
Calendar
類是一個抽象類,它為特定瞬間與一組諸如 YEAR
、MONTH
、DAY_OF_MONTH
、HOUR
等 日曆欄位
之間的轉換提供了一些方法,併為操作日曆欄位(例如獲得下星期的日期)提供了一些方法。瞬間可用毫秒值來表示,它是距曆元(即格林威治標準時間 1970 年 1 月 1 日的 00:00:00.000,格里高利曆)的偏移量。
該類還為實現包範圍外的具體日曆系統提供了其他欄位和方法。這些欄位和方法被定義為 protected
。
與其他語言環境敏感類一樣,Calendar
提供了一個類方法 getInstance
,以獲得此型別的一個通用的物件。Calendar
的 getInstance
方法返回一個 Calendar
物件,其日曆欄位已由當前日期和時間初始化:
Calendar rightNow = Calendar.getInstance();
Calendar
物件能夠生成為特定語言和日曆風格實現日期-時間格式化所需的所有日曆欄位值,例如,日語-格里高裡歷,日語-傳統日曆。Calendar
定義了某些日曆欄位返回值的範圍,以及這些值的含義。例如,對於所有日曆,日曆系統第一個月的值是 MONTH == JANUARY
。其他值是由具體子類(例如 ERA
)定義的。有關此內容的細節,請參閱每個欄位的文件和子類文件。
獲得並設定日曆欄位值
可以通過呼叫 set
方法來設定日曆欄位值。在需要計算時間值(距曆元所經過的毫秒)或日曆欄位值之前,不會解釋 Calendar
中的所有欄位值設定。呼叫 get
、getTimeInMillis
、getTime
、add
和 roll
涉及此類計算。
寬鬆性
Calendar
有兩種解釋日曆欄位的模式,即 lenient 和 non-lenient。當 Calendar
處於 lenient 模式時,它可接受比它所生成的日曆欄位範圍更大範圍內的值。當 Calendar
重新計算日曆欄位值,以便由 get()
返回這些值時,所有日曆欄位都被標準化。例如,lenient 模式下的 GregorianCalendar
將 MONTH == JANUARY
、DAY_OF_MONTH == 32
解釋為 February 1。
當 Calendar
處於 non-lenient 模式時,如果其日曆欄位中存在任何不一致性,它都會丟擲一個異常。例如,GregorianCalendar
總是在 1 與月份的長度之間生成 DAY_OF_MONTH
值。如果已經設定了任何超出範圍的欄位值,那麼在計算時間或日曆欄位值時,處於 non-lenient 模式下的 GregorianCalendar
會丟擲一個異常。
第一個星期
Calendar
使用兩個引數定義了特定於語言環境的 7 天制星期:星期的第一天和第一個星期中的最小一天(從 1 到 7)。這些數字取自構造 Calendar
時的語言環境資源資料。還可以通過為其設定值的方法來顯式地指定它們。
在設定或獲得 WEEK_OF_MONTH
或 WEEK_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 = 1970
、MONTH = JANUARY
、DAY_OF_MONTH = 1
,等等。
注: 對於某些特別時間的解釋可能會有某些歧義,可以用下列方式解決:
- 23:59 是一天中的最後一分鐘,而 00:00 是下一天的第一分鐘。因此,1999 年 12 月 31 日的 23:59 < 2000 年 1 月 1 日的 00:00。
- 儘管從歷史上看不夠精確,但午夜也屬於 "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
欄位摘要
欄位摘要 | |
---|---|
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) 設定日曆欄位 YEAR 、MONTH 和 DAY_OF_MONTH 的值。 |