日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OSCalendar

Calendar

創(chuàng)新互聯(lián)建站專注于勃利企業(yè)網(wǎng)站建設(shè),自適應(yīng)網(wǎng)站建設(shè),商城網(wǎng)站制作。勃利網(wǎng)站建設(shè)公司,為勃利等地區(qū)提供建站服務(wù)。全流程按需開發(fā)網(wǎng)站,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)

java.lang.Object

|---java.util.Calendar

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

Calendar 類是一個抽象類,它提供了在特定時刻和一組日歷字段(例如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等)之間進行轉(zhuǎn)換的方法,以及用于操作日歷字段(例如獲取日期)的方法 下周的。 時間的瞬間可以用毫秒值表示,該值是從 1970 年 1 月 1 日 00:00:00.000 GMT(格里高利)紀元的偏移量。

該類還提供了用于在包外實現(xiàn)具體日歷系統(tǒng)的附加字段和方法。 這些字段和方法被定義為受保護的。

與其他對語言環(huán)境敏感的類一樣,Calendar 提供了一個類方法 getInstance,用于獲取這種類型的普遍有用的對象。 Calendar 的 getInstance 方法返回一個 Calendar 對象,其日歷字段已用當前日期和時間初始化:

     Calendar rightNow = Calendar.getInstance(); 

Calendar 對象可以生成實現(xiàn)特定語言和日歷樣式的日期時間格式所需的所有日歷字段值(例如,Japanese-Gregorian、Japanese-Traditional)。 日歷定義了某些日歷字段返回的值的范圍,以及它們的含義。 例如,日歷系統(tǒng)的第一個月對于所有日歷都有值 MONTH == JANUARY。 其他值由具體子類定義,例如 ERA。

獲取和設(shè)置日歷字段值

可以通過調(diào)用 set 方法來設(shè)置日歷字段值。 在需要計算其時間值(距紀元的毫秒數(shù))或日歷字段的值之前,不會解釋日歷中設(shè)置的任何字段值。 調(diào)用 get、getTimeInMillis、getTime、add 和 roll 涉及到這樣的計算。

Leniency

Calendar 有兩種解釋日歷字段的模式,寬松和非寬松。當日歷處于寬松模式時,它接受的日歷字段值范圍比它產(chǎn)生的范圍更廣。當 Calendar 重新計算日歷字段值以通過 get() 返回時,所有日歷字段都被規(guī)范化。例如,寬松的 GregorianCalendar 將 MONTH == JANUARY, DAY_OF_MONTH == 32 解釋為 2 月 1 日。

當日歷處于非寬松模式時,如果其日歷字段中存在任何不一致,它將引發(fā)異常。例如,GregorianCalendar 總是產(chǎn)生介于 1 和月份長度之間的 DAY_OF_MONTH 值。如果設(shè)置了任何超出范圍的字段值,非寬松的 GregorianCalendar 在計算其時間或日歷字段值時會引發(fā)異常。

第一周日歷使用兩個參數(shù)定義特定于語言環(huán)境的一周七天:一周的第一天和第一周的最少天數(shù)(從 1 到 7)。這些數(shù)字是在構(gòu)造日歷時從語言環(huán)境資源數(shù)據(jù)中獲取的。它們也可以通過設(shè)置它們的值的方法明確指定。

在設(shè)置或獲取 WEEK_OF_MONTH 或 WEEK_OF_YEAR 字段時,Calendar 必須確定月份或年份的第一周作為參考點。一個月或一年的第一周定義為從 getFirstDayOfWeek() 開始并至少包含該月或該年的 getMinimalDaysInFirstWeek() 天的最早 7 天時間段。周數(shù) ..., -1, 0 在第一周之前;第 2 周、第 3 周、... 跟隨它。請注意,get() 返回的標準化編號可能不同。例如,一個特定的日歷子類可以將一年中第 1 周的前一周指定為上一年的第 n 周。

日歷字段解析 從日歷字段計算日期和時間時,可能存在計算信息不足(例如只有年月,沒有月日),或者可能存在不一致的信息(例如,7 月 15 日,星期二, 1996(公歷)——1996 年 7 月 15 日實際上是星期一)。 Calendar 將通過以下方式解析日歷字段值以確定日期和時間。

如果日歷字段值有任何沖突,日歷會優(yōu)先考慮最近設(shè)置的日歷字段。以下是日歷字段的默認組合。將使用由最近設(shè)置的單個字段確定的最近組合。

對于日期字段:

 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 

如果有任何日歷字段的值尚未在所選字段組合中設(shè)置,日歷將使用其默認值。 每個字段的默認值可能因具體的日歷系統(tǒng)而異。 例如,在 GregorianCalendar 中,字段的默認值與 Epoch 的開始相同:即 YEAR = 1970、MONTH = JANUARY、DAY_OF_MONTH = 1 等。

注意:某些奇異時間的解釋可能存在一定的歧義,通過以下方式解決:

  1. 23:59 是一天的最后一分鐘,00:00 是第二天的第一分鐘。 因此,1999 年 12 月 31 日 23:59 < 2000 年 1 月 1 日 00:00 < 2000 年 1 月 1 日 00:01。
  2. 雖然歷史上不準確,但午夜也屬于“am”,中午屬于“pm”,所以同一天,12:00 am(午夜)< 12:01 am,12:00 pm(中午)< 12 :01 下午

日期或時間格式字符串不是日歷定義的一部分,因為用戶必須在運行時修改或覆蓋這些字符串。使用 DateFormat 格式化日期。

字段操作 可以使用三種方法更改日歷字段:set()、add() 和 roll()。

set(f, value) 將日歷字段 f 更改為值。此外,它設(shè)置一個內(nèi)部成員變量來指示日歷字段 f 已更改。盡管日歷字段 f 立即更改,但在下一次調(diào)用 get()、getTime()、getTimeInMillis()、add() 或 roll() 之前,不會重新計算日歷的時間值(以毫秒為單位)。因此,多次調(diào)用 set() 不會觸發(fā)多次不必要的計算。作為使用 set() 更改日歷字段的結(jié)果,其他日歷字段也可能更改,具體取決于日歷字段、日歷字段值和日歷系統(tǒng)。此外,在重新計算日歷字段后,get(f) 不一定會返回調(diào)用 set 方法設(shè)置的值。具體由具體的日歷類決定。

示例:考慮最初設(shè)置為 1999 年 8 月 31 日的 GregorianCalendar。調(diào)用 set(Calendar.MONTH, Calendar.SEPTEMBER) 將日期設(shè)置為 1999 年 9 月 31 日。這是一個臨時內(nèi)部表示,如果 getTime() 則解析為 1999 年 10 月 1 日然后被調(diào)用。但是,在調(diào)用 getTime() 之前調(diào)用 set(Calendar.DAY_OF_MONTH, 30) 會將日期設(shè)置為 1999 年 9 月 30 日,因為在 set() 本身之后不會發(fā)生重新計算。

add(f, delta) 將 delta 添加到字段 f。這相當于調(diào)用 set(f, get(f) + delta) 并進行兩次調(diào)整:

添加規(guī)則 1。調(diào)用后字段 f 的值減去調(diào)用前字段 f 的值是 delta,以字段 f 中發(fā)生的任何溢出為模。當字段值超出其范圍時會發(fā)生溢出,因此,下一個較大的字段會遞增或遞減,并且字段值會調(diào)整回其范圍內(nèi)。

增加規(guī)則2。如果一個較小的字段期望是不變的,但是由于字段f改變后它的最小值或最大值發(fā)生變化或其他約束,例如時區(qū)偏移量變化,它不可能等于它的先前值,然后將其值調(diào)整為盡可能接近其預(yù)期值。較小的字段表示較小的時間單位。 HOUR 是比 DAY_OF_MONTH 小的字段。不對預(yù)期不會保持不變的較小字段進行任何調(diào)整。日歷系統(tǒng)確定哪些字段預(yù)計是不變的。

此外,與 set() 不同,add() 強制立即重新計算日歷的毫秒數(shù)和所有字段。

示例:考慮最初設(shè)置為 1999 年 8 月 31 日的 GregorianCalendar。調(diào)用 add(Calendar.MONTH, 13) 將日歷設(shè)置為 2000 年 9 月 30 日。添加規(guī)則 1 將 MONTH 字段設(shè)置為九月,因為在八月添加 13 個月會給出九月 下一年。 由于 DAY_OF_MONTH 在 GregorianCalendar 中不能為 9 月的 31,因此添加規(guī)則 2 將 DAY_OF_MONTH 設(shè)置為 30,這是最接近的可能值。 雖然它是一個較小的字段,但 DAY_OF_WEEK 不會被規(guī)則 2 調(diào)整,因為它預(yù)計會隨著 GregorianCalendar 中月份的變化而變化。

roll(f, delta) 將 delta 添加到字段 f 而不更改更大的字段。 這相當于調(diào)用 add(f, delta) 并進行以下調(diào)整:

滾動規(guī)則。 調(diào)用后較大的字段保持不變。 較大的字段表示較大的時間單位。 DAY_OF_MONTH 是比 HOUR 更大的字段。

使用模式。 為了激發(fā) add() 和 roll() 的行為,考慮一個帶有月、日和年的遞增和遞減按鈕的用戶界面組件,以及一個底層的 GregorianCalendar。 如果界面顯示為 1999 年 1 月 31 日,用戶按下月份增量按鈕,應(yīng)該顯示什么? 如果底層實現(xiàn)使用 set(),它可能顯示為 1999 年 3 月 3 日。更好的結(jié)果是 1999 年 2 月 28 日。此外,如果用戶再次按下月份增量按鈕,它應(yīng)該顯示為 1999 年 3 月 31 日,而不是 3 月 28 日 , 1999。通過保存原始日期并使用 add() 或 roll(),根據(jù)是否應(yīng)該影響更大的字段,用戶界面可以像大多數(shù)用戶直觀預(yù)期的那樣運行。

嵌套類摘要

修飾符和類型 描述
static classCalendar.BuilderCalendar.Builder 用于從各種日期時間參數(shù)創(chuàng)建日歷。

字段摘要

修飾符和類型 字段 描述
static intALL_STYLESgetDisplayNames 的樣式說明符,指示所有樣式中的名稱,例如“January”和“Jan”。
static intAMAM_PM 字段的值,指示一天中從午夜到正午之前的時段。
static intAM_PMget 和 set 的字段編號,指示 HOUR 是在中午之前還是之后。
static intAPRILMONTH 字段的值,指示公歷和儒略歷中一年中的第四個月。
protected booleanareFieldsSet如果 fields[] 與當前設(shè)置的時間同步,則為true。
static intAUGUSTMONTH 字段的值,指示公歷和儒略歷中一年中的第 8 個月。
static intDATEget 和 set 的字段編號,指示月份中的哪一天。
static intDAY_OF_MONTHget 和 set 的字段編號,指示月份中的哪一天。
static intDAY_OF_WEEKget 和 set 的字段編號,指示星期幾。
static intDAY_OF_WEEK_IN_MONTHget 和 set 的字段編號,指示當前月份中星期幾的序號。
static intDAY_OF_YEARget 和 set 的字段編號,表示當前年份中的天數(shù)。
static intDECEMBERMONTH 字段的值,指示公歷和儒略歷中一年中的第十二個月。
static intDST_OFFSETget 和 set 的字段編號,以毫秒為單位指示夏令時偏移量。
static intERA用于表示時代的 get 和 set 字段編號,例如儒略歷中的 AD 或 BC。
static intFEBRUARYMONTH 字段的值,指示公歷和儒略歷中一年中的第二個月。
static intFIELD_COUNTget 和 set 識別的不同字段的數(shù)量。
protected int[]fields此日歷當前設(shè)置時間的日歷字段值。
static intFRIDAY表示星期五的 DAY_OF_WEEK 字段的值。
static intHOURget 和 set 的字段編號,指示上午或下午的時間。
static intHOUR_OF_DAYget 和 set 的字段編號,指示一天中的小時。
protected boolean[]isSet指示是否設(shè)置了日歷的指定日歷字段的標志。
protected booleanisTimeSet如果時間值有效,則為true。
static intJANUARYMONTH 字段的值,指示公歷和儒略歷中一年中的第一個月。
static intJULYMONTH 字段的值,指示公歷和儒略歷中一年中的第七個月。
static intJUNEMONTH 字段的值,指示公歷和儒略歷中一年中的第六個月。
static intLONGgetDisplayName 和 getDisplayNames 的樣式說明符,等效于 LONG_FORMAT。
static intLONG_FORMATgetDisplayName 和 getDisplayNames 的樣式說明符,指示用于格式的長名稱。
static intLONG_STANDALONEgetDisplayName 和 getDisplayNames 的樣式說明符,指示獨立使用的長名稱,例如作為日歷標題的月份名稱。
static intMARCHMONTH 字段的值,指示公歷和儒略歷中一年中的第三個月。
static intMAYMONTH 字段的值,指示公歷和儒略歷中一年中的第五個月。
static intMILLISECONDget 和 set 的字段編號,指示秒內(nèi)的毫秒。
static intMINUTEget 和 set 的字段編號,指示一小時內(nèi)的分鐘。
static intMONDAYDAY_OF_WEEK 字段的值表示星期一。
static intMONTHget 和 set 的字段編號,指示月份。
static intNARROW_FORMATgetDisplayName 和 getDisplayNames 的樣式說明符,指示用于格式的窄名稱。
static intNARROW_STANDALONEgetDisplayName 和 getDisplayNames 的樣式說明符分別指示窄名稱。
static intNOVEMBERMONTH 字段的值,指示公歷和儒略歷中一年中的第十一個月。
static intOCTOBERMONTH 字段的值,指示公歷和儒略歷中一年中的第十個月。
static intPMAM_PM 字段的值,指示一天中從中午到午夜之前的時段。
static intSATURDAY表示星期六的 DAY_OF_WEEK 字段的值。
static intSECONDget 和 set 的字段編號,指示一分鐘內(nèi)的秒數(shù)。
static intSEPTEMBERMONTH 字段的值,指示公歷和儒略歷中一年中的第 9 個月。
static intSHORTgetDisplayName 和 getDisplayNames 的樣式說明符,等效于 SHORT_FORMAT。
static intSHORT_FORMATgetDisplayName 和 getDisplayNames 的樣式說明符,指示用于格式的短名稱。
static intSHORT_STANDALONEgetDisplayName 和 getDisplayNames 的樣式說明符,指示獨立使用的短名稱,例如作為日歷標題的月份縮寫。
static intSUNDAY表示星期日的 DAY_OF_WEEK 字段的值。
static intTHURSDAY表示星期四的 DAY_OF_WEEK 字段的值。
protected longtime此日歷的當前設(shè)置時間,以 1970 年 1 月 1 日 0:00:00 GMT 之后的毫秒數(shù)表示。
static intTUESDAY表示星期二的 DAY_OF_WEEK 字段的值。
static intUNDECIMBERMONTH 字段的值表示一年中的第十三個月。
static intWEDNESDAY表示星期三的 DAY_OF_WEEK 字段的值。
static intWEEK_OF_MONTHget 和 set 的字段編號,指示當前月份中的周數(shù)。
static intWEEK_OF_YEARget 和 set 的字段編號,表示當前年份中的周數(shù)。
static intYEARget 和 set 的字段編號,指示年份。
static intZONE_OFFSETget 和 set 的字段編號,指示與 GMT 的原始偏移量(以毫秒為單位)。

構(gòu)造函數(shù)摘要

修飾符 構(gòu)造函數(shù) 描述
protectedCalendar()構(gòu)造一個具有默認時區(qū)和默認 FORMAT 語言環(huán)境的日歷。
protectedCalendar(TimeZone zone, Locale aLocale)構(gòu)造具有指定時區(qū)和語言環(huán)境的日歷。

方法總結(jié)

修飾符和類型 方法 描述
abstract voidadd(int field, int amount)根據(jù)日歷的規(guī)則,在給定的日歷字段中添加或減去指定的時間量。
booleanafter(Object when)返回此 Calendar 是否表示指定 Object 表示的時間之后的時間。
booleanbefore(Object when)返回此 Calendar 是否表示指定 Object 表示的時間之前的時間。
voidclear()設(shè)置此日歷未定義的所有日歷字段值和時間值(從紀元開始的毫秒偏移量)。
voidclear(int field)設(shè)置此日歷未定義的給定日歷字段值和時間值(從紀元開始的毫秒偏移量)。
Objectclone()創(chuàng)建并返回此對象的副本。
intcompareTo(Calendar anotherCalendar)比較兩個 Calendar 對象表示的時間值(從 Epoch 開始的毫秒偏移量)。
protected voidcomplete()填寫日歷字段中任何未設(shè)置的字段。
protected abstract voidcomputeFields()將當前毫秒時間值 time 轉(zhuǎn)換為 [fields] 中的日歷字段值。
protected abstract voidcomputeTime()將 [fields] 中的當前日歷字段值轉(zhuǎn)換為毫秒時間值 time。
booleanequals(Object obj)將此日歷與指定的對象進行比較。
intget(int field)返回給定日歷字段的值。
intgetActualMaximum(int field)在給定此日歷的時間值的情況下,返回指定日歷字段可以具有的最大值。
intgetActualMinimum(int field)在給定此日歷的時間值的情況下,返回指定日歷字段可能具有的最小值。
static SetStringgetAvailableCalendarTypes()返回一個不可修改的 Set,其中包含運行時環(huán)境中 Calendar 支持的所有日歷類型。
static Locale[]getAvailableLocales()返回此類的 getInstance 方法可以為其返回本地化實例的所有語言環(huán)境的數(shù)組。
StringgetCalendarType()返回此日歷的日歷類型。
StringgetDisplayName(int field, int style, Locale locale)返回給定樣式和語言環(huán)境中日歷字段值的字符串表示形式。
MapString,IntegergetDisplayNames(int field, int style, Locale locale)返回一個 Map,其中包含給定樣式和語言環(huán)境中日歷字段的所有名稱及其對應(yīng)的字段值。
intgetFirstDayOfWeek()獲取一周的第一天是什么; 例如,美國的星期日,法國的星期一。
abstract intgetGreatestMinimum(int field)返回此 Calendar 實例的給定日歷字段的最大最小值。
static CalendargetInstance()獲取使用默認時區(qū)和語言環(huán)境的日歷。
static CalendargetInstance(Locale aLocale)獲取使用默認時區(qū)和指定區(qū)域設(shè)置的日歷。
static CalendargetInstance(TimeZone zone)獲取使用指定時區(qū)和默認語言環(huán)境的日歷。
static CalendargetInstance(TimeZone zone, Locale aLocale)獲取具有指定時區(qū)和語言環(huán)境的日歷。
abstract intgetLeastMaximum(int field)返回此 Calendar 實例的給定日歷字段的最低最大值。
abstract intgetMaximum(int field)返回此 Calendar 實例的給定日歷字段的最大值。
intgetMinimalDaysInFirstWeek()獲取一年中第一周所需的最少天數(shù); 例如,如果第一周定義為包含一年中第一個月的第一天,則此方法返回 1。
abstract intgetMinimum(int field)返回此 Calendar 實例的給定日歷字段的最小值。
DategetTime()返回一個 Date 對象,表示此日歷的時間值(從 Epoch 開始的毫秒偏移量)。
longgetTimeInMillis()返回此日歷的時間值(以毫秒為單位)。
TimeZonegetTimeZone()獲取時區(qū)。
intgetWeeksInWeekYear()返回此日歷表示的一周年中的周數(shù)。
intgetWeekYear()返回此日歷表示的周年。
inthashCode()返回此日歷的哈希碼。
protected intinternalGet(int field)返回給定日歷字段的值。
booleanisLenient()告訴日期/時間解釋是否寬松。
booleanisSet(int field)確定給定的日歷字段是否設(shè)置了值,包括該值已由 get 方法調(diào)用觸發(fā)的內(nèi)部字段計算設(shè)置的情況。
booleanisWeekDateSupported()返回此日歷是否支持星期日期。
abstract voidroll(int field, boolean up)在給定時間字段上添加或減去(上/下)單個時間單位,而不更改更大的字段。
voidroll(int field, int amount)將指定的(簽名的)金額添加到指定的日歷字段而不更改更大的字段。
voidset(int field, int value)將給定的日歷字段設(shè)置為給定的值。
voidset(int year, int month, int date)設(shè)置日歷字段 YEAR、MONTH 和 DAY_OF_MONTH 的值。
voidset(int year, int month, int date, int hourOfDay, int minute)設(shè)置日歷字段 YEAR、MONTH、DAY_OF_MONTH、HOUR_OF_DAY 和 MINUTE 的值。
voidset(int year, int month, int date, int hourOfDay, int minute, int second)設(shè)置字段 YEAR、MONTH、DAY_OF_MONTH、HOUR_OF_DAY、MINUTE 和 SECOND 的值。
voidsetFirstDayOfWeek(int value)設(shè)置一周的第一天是什么; 例如,美國的星期日,法國的星期一。
voidsetLenient(boolean lenient)指定日期/時間解釋是否寬松。
voidsetMinimalDaysInFirstWeek(int value)設(shè)置一年中第一周所需的最少天數(shù); 例如,如果第一周被定義為包含一年中第一個月的第一天,則使用值 1 調(diào)用此方法。
voidsetTime(Date date)使用給定的日期設(shè)置此日歷的時間。
voidsetTimeInMillis(long millis)根據(jù)給定的 long 值設(shè)置此日歷的當前時間。
voidsetTimeZone(TimeZone value)使用給定的時區(qū)值設(shè)置時區(qū)。
voidsetWeekDate(int weekYear, int weekOfYear, int dayOfWeek)使用給定的日期說明符設(shè)置此日歷的日期 - 星期幾、一年中的星期和星期幾。
InstanttoInstant()將此對象轉(zhuǎn)換為 Instant。
StringtoString()返回此日歷的字符串表示形式。
從類 java.lang.Object 繼承的方法
finalize, getClass, notify, notifyAll, wait, wait, wait

字段詳細信息

ALL_STYLES

public static final int ALL_STYLES

getDisplayNames 的樣式說明符,指示所有樣式中的名稱,例如“January”和“Jan”。

AM

public static final int AM

AM_PM 字段的值,指示一天中從午夜到正午之前的時段。

AM_PM

public static final int AM_PM

get 和 set 的字段編號,指示 HOUR 是在中午之前還是之后。 例如,在晚上 10:04:15.250,AM_PM 是 PM。

APRIL

public static final int APRIL

MONTH 字段的值,指示公歷和儒略歷中一年中的第四個月。

AUGUST

public static final int AUGUST

MONTH 字段的值,指示公歷和儒略歷中一年中的第 8 個月。

DATE

public static final int DATE

get 和 set 的字段編號,指示月份中的哪一天。 這是 DAY_OF_MONTH 的同義詞。 該月的第一天的值為 1。

DAY_OF_MONTH

public static final int DAY_OF_MONTH

get 和 set 的字段編號,指示月份中的哪一天。 這是 DATE 的同義詞。 該月的第一天的值為 1。

DAY_OF_WEEK

public static final int DAY_OF_WEEK

get 和 set 的字段編號,指示星期幾。 此字段采用 SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY 和 SATURDAY 值。

DAY_OF_WEEK_IN_MONTH

public static final int DAY_OF_WEEK_IN_MONTH

get 和 set 的字段編號,指示當前月份中星期幾的序號。 與 DAY_OF_WEEK 字段一起,它唯一地指定一個月內(nèi)的一天。 與 WEEK_OF_MONTH 和 WEEK_OF_YEAR 不同,該字段的值不依賴于 getFirstDayOfWeek() 或 getMinimalDaysInFirstWeek()。 DAY_OF_MONTH 1 到 7 始終對應(yīng) DAY_OF_WEEK_IN_MONTH 1; 8 到 14 對應(yīng)于 DAY_OF_WEEK_IN_MONTH 2,依此類推。 DAY_OF_WEEK_IN_MONTH 0 表示 DAY_OF_WEEK_IN_MONTH 1 之前的一周。負值從月底開始倒數(shù),因此一個月的最后一個星期日指定為 DAY_OF_WEEK = SUNDAY, DAY_OF_WEEK_IN_MONTH = -1。 因為負值向后計數(shù),所以它們在月份內(nèi)的對齊方式通常與正值不同。 例如,如果一個月有 31 天,DAY_OF_WEEK_IN_MONTH -1 將與 DAY_OF_WEEK_IN_MONTH 5 和 4 結(jié)束重疊。

DAY_OF_YEAR

public static final int DAY_OF_YEAR

get 和 set 的字段編號,表示當前年份中的天數(shù)。 一年的第一天的值為 1。

DECEMBER

public static final int DECEMBER

MONTH 字段的值,指示公歷和儒略歷中一年中的第十二個月。

DST_OFFSET

public static final int DST_OFFSET

get 和 set 的字段編號,以毫秒為單位指示夏令時偏移量。

如果 TimeZone 實現(xiàn)子類支持歷史夏令時時間表更改,則此字段反映此日歷的時區(qū)的正確夏令時偏移值。

ERA

public static final int ERA

用于表示時代的 get 和 set 字段編號,例如儒略歷中的 AD 或 BC。 這是一個特定于日歷的值。

FEBRUARY

public static final int FEBRUARY

MONTH 字段的值,指示公歷和儒略歷中一年中的第二個月。

FIELD_COUNT

public static final int FIELD_COUNT

get 和 set 識別的不同字段的數(shù)量。 字段編號范圍為 0..FIELD_COUNT-1。

FRIDAY

public static final int FRIDAY

表示星期五的 DAY_OF_WEEK 字段的值。

HOUR

public static final int HOUR

get 和 set 的字段編號,指示上午或下午的時間。 HOUR 用于 12 小時制 (0 - 11)。 中午和午夜用 0 表示,而不是用 12 表示。例如,在晚上 10:04:15.250,HOUR 是 10。

HOUR_OF_DAY

public static final int HOUR_OF_DAY

get 和 set 的字段編號,指示一天中的小時。 HOUR_OF_DAY 用于 24 小時制。 例如,在晚上 10:04:15.250,HOUR_OF_DAY 是 22。

JANUARY

public static final int JANUARY

MONTH 字段的值,指示公歷和儒略歷中一年中的第一個月。

JULY

public static final int JULY

MONTH 字段的值,指示公歷和儒略歷中一年中的第七個月。

JUNE

public static final int JUNE

MONTH 字段的值,指示公歷和儒略歷中一年中的第 6 個月。

LONG

public static final int LONG

getDisplayName 和 getDisplayNames 的樣式說明符,等效于 LONG_FORMAT。

LONG_FORMAT

public static final int LONG_FORMAT

getDisplayName 和 getDisplayNames 的樣式說明符,指示用于格式的長名稱。

LONG_STANDALONE

public static final int LONG_STANDALONE

getDisplayName 和 getDisplayNames 的樣式說明符,指示獨立使用的長名稱,例如作為日歷標題的月份名稱。

MARCH

public static final int MARCH

MONTH 字段的值,指示公歷和儒略歷中一年中的第三個月。

MAY

public static final int MAY

MONTH 字段的值,指示公歷和儒略歷中一年中的第五個月。

MILLISECOND

public static final int MILLISECOND

get 和 set 的字段編號,指示秒內(nèi)的毫秒。 例如,在晚上 10:04:15.250,MILLISECOND 是 250。

MINUTE

public static final int MINUTE

get 和 set 的字段編號,指示一小時內(nèi)的分鐘。 例如,在晚上 10:04:15.250,MINUTE 為 4。

MONDAY

public static final int MONDAY

DAY_OF_WEEK 字段的值表示星期一。

MONTH

public static final int MONTH

get 和 set 的字段編號,指示月份。 這是特定于日歷的值。 公歷和儒略歷中的第一個月是 JANUARY,即 0; 最后一個取決于一年中的月數(shù)。

NARROW_FORMAT

public static final int NARROW_FORMAT

getDisplayName 和 getDisplayNames 的樣式說明符,指示用于格式的窄名稱。 窄名稱通常是單個字符串,例如星期一的“M”。

NARROW_STANDALONE

public static final int NARROW_STANDALONE

getDisplayName 和 getDisplayNames 的樣式說明符分別指示窄名稱。 窄名稱通常是單個字符串,例如星期一的“M”。

NOVEMBER

public static final int NOVEMBER

MONTH 字段的值,指示公歷和儒略歷中一年中的第十一個月。

OCTOBER

public static final int OCTOBER

MONTH 字段的值,指示公歷和儒略歷中一年中的第十個月。

PM

public static final int PM

AM_PM 字段的值,指示一天中從中午到午夜之前的時段。

SATURDAY

public static final int SATURDAY

表示星期六的 DAY_OF_WEEK 字段的值。

SECOND

public static final int SECOND

get 和 set 的字段編號,指示一分鐘內(nèi)的秒數(shù)。 例如,在晚上 10:04:15.250,SECOND 是 15。

SEPTEMBER

public static final int SEPTEMBER

MONTH 字段的值,指示公歷和儒略歷中一年中的第 9 個月。

SHORT

public static final int SHORT

getDisplayName 和 getDisplayNames 的樣式說明符,等效于 SHORT_FORMAT。

SHORT_FORMAT

public static final int SHORT_FORMAT

getDisplayName 和 getDisplayNames 的樣式說明符,指示用于格式的短名稱。

SHORT_STANDALONE

public static final int SHORT_STANDALONE

getDisplayName 和 getDisplayNames 的樣式說明符,指示獨立使用的短名稱,例如作為日歷標題的月份縮寫。

SUNDAY

public static final int SUNDAY

表示星期日的 DAY_OF_WEEK 字段的值。

THURSDAY

public static final int THURSDAY

表示星期四的 DAY_OF_WEEK 字段的值。

TUESDAY

public static final int TUESDAY

表示星期二的 DAY_OF_WEEK 字段的值。

UNDECIMBER

public static final int UNDECIMBER

MONTH 字段的值表示一年中的第十三個月。 盡管 GregorianCalendar 不使用此值,但農(nóng)歷使用。

WEDNESDAY

public static final int WEDNESDAY

表示星期三的 DAY_OF_WEEK 字段的值。

WEEK_OF_MONTH

public static final int WEEK_OF_MONTH

get 和 set 的字段編號,指示當前月份中的周數(shù)。 該月的第一周,由 getFirstDayOfWeek() 和 getMinimalDaysInFirstWeek() 定義,值為 1。子類定義該月第一周前幾天的 WEEK_OF_MONTH 值。

WEEK_OF_YEAR

public static final int WEEK_OF_YEAR

get 和 set 的字段編號,表示當前年份中的周數(shù)。 一年中的第一周,由 getFirstDayOfWeek() 和 getMinimalDaysInFirstWeek() 定義,值為 1。子類定義一年中第一周前幾天的 WEEK_OF_YEAR 值。

YEAR

public static final int YEAR

get 和 set 的字段編號,指示年份。 這是一個特定于日歷的值; 請參閱子類文檔。

ZONE_OFFSET

public static final int ZONE_OFFSET

get 和 set 的字段編號,指示與 GMT 的原始偏移量(以毫秒為單位)。

如果 TimeZone 實現(xiàn)子類支持歷史 GMT 偏移更改,則此字段反映此日歷的時區(qū)的正確 GMT 偏移值。

areFieldsSet

protected boolean areFieldsSet

如果 fields[] 與當前設(shè)置的時間同步,則為true。 如果為 false,則下一次獲取字段值的嘗試將強制從當前時間值重新計算所有字段。

fields

protected int[] fields

此日歷當前設(shè)置時間的日歷字段值。 這是一個 FIELD_COUNT 整數(shù)數(shù)組,索引值為 ERA 到 DST_OFFSET。

isSet

protected boolean[] isSet

指示是否設(shè)置了日歷的指定日歷字段的標志。 新對象沒有設(shè)置字段。 在第一次調(diào)用生成字段的方法之后,它們都保持設(shè)置。 這是一個 FIELD_COUNT 布爾數(shù)組,索引值 ERA 到 DST_OFFSET。

isTimeSet

protected boolean isTimeSet

如果時間值有效,則為true。 通過更改字段 [] 的項目使時間無效。

time

protected long time

此日歷的當前設(shè)置時間,以 1970 年 1 月 1 日 0:00:00 GMT 之后的毫秒數(shù)表示。

構(gòu)造函數(shù)詳細信息

Calendar

protected Calendar()

構(gòu)造一個具有默認時區(qū)和默認 FORMAT 語言環(huán)境的日歷。

Calendar

protected Calendar(TimeZone zone, Locale aLocale)

構(gòu)造具有指定時區(qū)和語言環(huán)境的日歷。

參數(shù):

參數(shù)名稱 參數(shù)描述
zone要使用的時區(qū)
aLocale周數(shù)據(jù)的語言環(huán)境

方法詳情

getInstance

public static Calendar getInstance()

獲取使用默認時區(qū)和語言環(huán)境的日歷。 返回的日歷基于具有默認 Locale.Category#FORMAT 區(qū)域設(shè)置的默認時區(qū)中的當前時間。

返回:

日歷。

getInstance

public static Calendar getInstance(TimeZone zone)

獲取使用指定時區(qū)和默認語言環(huán)境的日歷。 返回的日歷基于給定時區(qū)的當前時間,具有默認的 Locale.Category#FORMAT 語言環(huán)境。

參數(shù):

參數(shù)名稱 參數(shù)描述
zone要使用的時區(qū)

返回:

日歷。

getInstance

public static Calendar getInstance(Locale aLocale)

獲取使用默認時區(qū)和指定區(qū)域設(shè)置的日歷。 返回的日歷基于具有給定區(qū)域設(shè)置的默認時區(qū)中的當前時間。

參數(shù):

參數(shù)名稱 參數(shù)描述
aLocale周數(shù)據(jù)的語言環(huán)境

返回:

日歷。

getInstance

public static Calendar getInstance(TimeZone zone, Locale aLocale)

獲取具有指定時區(qū)和語言環(huán)境的日歷。 返回的日歷基于具有給定語言環(huán)境的給定時區(qū)中的當前時間。

參數(shù):

參數(shù)名稱 參數(shù)描述
zone要使用的時區(qū)
aLocale周數(shù)據(jù)的語言環(huán)境

返回:

日歷。

getAvailableLocales

public static Locale[] getAvailableLocales()

返回此類的 getInstance 方法可以為其返回本地化實例的所有語言環(huán)境的數(shù)組。 返回的數(shù)組必須至少包含一個等于 Locale.US 的 Locale 實例。

返回:

本地化 Calendar 實例可用的語言環(huán)境數(shù)組。

computeTime

protected abstract void computeTime()

將 [fields] 中的當前日歷字段值轉(zhuǎn)換為毫秒時間值 time。

computeFields

protected abstract void computeFields()

將當前毫秒時間值 time 轉(zhuǎn)換為 [fields] 中的日歷字段值。 這允許您將日歷字段值與為日歷設(shè)置的新時間同步。 時間不先重新計算; 要重新計算時間,然后是字段,請調(diào)用 complete() 方法。

getTime

public final Date getTime()

返回一個 Date 對象,表示此日歷的時間值(從 Epoch 開始的毫秒偏移量)。

返回:

表示時間值的日期。

setTime

public final void setTime(Date date)

使用給定的日期設(shè)置此日歷的時間。

注意:使用 Date(Long.MAX_VALUE) 或 Date(Long.MIN_VALUE) 調(diào)用 setTime() 可能會從 get() 中產(chǎn)生不正確的字段值。

參數(shù):

參數(shù)名稱 參數(shù)描述
date給定的日期。

getTimeInMillis

public long getTimeInMillis()

返回此日歷的時間值(以毫秒為單位)。

返回:

當前時間,從紀元開始的 UTC 毫秒。

setTimeInMillis

public void setTimeInMillis(long millis)

根據(jù)給定的 long 值設(shè)置此日歷的當前時間。

參數(shù):

參數(shù)名稱 參數(shù)描述
millis從紀元開始的新時間(以 UTC 毫秒為單位)。

get

public int get(int field)

返回給定日歷字段的值。 在寬松模式下,所有日歷字段都被規(guī)范化。 在非寬松模式下,所有日歷字段都經(jīng)過驗證,如果任何日歷字段的值超出范圍,此方法將引發(fā)異常。 規(guī)范化和驗證由 complete() 方法處理,該過程取決于日歷系統(tǒng)。

參數(shù):

參數(shù)名稱 參數(shù)描述
field給定的日歷字段。

返回:

給定日歷字段的值。

Throws:

Throw名稱 Throw描述
ArrayIndexOutOfBoundsException如果指定的字段超出范圍(字段 < 0 || 字段 >= FIELD_COUNT)。

internalGet

protected final int internalGet(int field)

返回給定日歷字段的值。 此方法不涉及字段值的規(guī)范化或驗證。

參數(shù):

參數(shù)名稱 參數(shù)描述
field給定的日歷字段。

返回:

給定日歷字段的值。

set

public void set(int field, int value)

將給定的日歷字段設(shè)置為給定的值。 無論寬大模式如何,此方法都不會解釋該值。

參數(shù):

參數(shù)名稱 參數(shù)描述
field給定的日歷字段。
value要為給定日歷字段設(shè)置的值。

Throws:

Throw名稱 Throw描述
ArrayIndexOutOfBoundsException如果指定的字段超出范圍(字段 < 0 || 字段 >= FIELD_COUNT)。 在非寬松模式下。

set

public final void set(int year, int month, int date)

設(shè)置日歷字段 YEAR、MONTH 和 DAY_OF_MONTH 的值。 保留其他日歷字段的先前值。 如果不需要,請先調(diào)用 clear()。

參數(shù):

參數(shù)名稱 參數(shù)描述
year用于設(shè)置 YEAR 日歷字段的值。
month用于設(shè)置 MONTH 日歷字段的值。 月份值從 0 開始。 例如,0 表示一月。
date用于設(shè)置 DAY_OF_MONTH 日歷字段的值。

set

public final void set(int year, int month, int date, int hourOfDay, int minute)

設(shè)置日歷字段 YEAR、MONTH、DAY_OF_MONTH、HOUR_OF_DAY 和 MINUTE 的值。 保留其他字段的先前值。 如果不需要,請先調(diào)用 clear()。

參數(shù):

參數(shù)名稱 參數(shù)描述
year用于設(shè)置 YEAR 日歷字段的值。
month用于設(shè)置 MONTH 日歷字段的值。 月份值從 0 開始。 例如,0 表示一月。
date用于設(shè)置 DAY_OF_MONTH 日歷字段的值。
hourOfDay用于設(shè)置 HOUR_OF_DAY 日歷字段的值。
minute用于設(shè)置 MINUTE 日歷字段的值。

set

public final void set(int year, int month, int date, int hourOfDay, int minute, int second)

設(shè)置字段 YEAR、MONTH、DAY_OF_MONTH、HOUR_OF_DAY、MINUTE 和 SECOND 的值。 保留其他字段的先前值。 如果不需要,請先調(diào)用 clear()。

參數(shù):

參數(shù)名稱 參數(shù)描述
year用于設(shè)置 YEAR 日歷字段的值。
month用于設(shè)置 MONTH 日歷字段的值。 月份值從 0 開始。 例如,0 表示一月。
date用于設(shè)置 DAY_OF_MONTH 日歷字段的值。
hourOfDay用于設(shè)置 HOUR_OF_DAY 日歷字段的值。
minute用于設(shè)置 MINUTE 日歷字段的值。
second用于設(shè)置 SECOND 日歷字段的值。

clear

public final void clear()

設(shè)置此日歷未定義的所有日歷字段值和時間值(從紀元開始的毫秒偏移量)。 這意味著 isSet() 將為所有日歷字段返回 false,并且日期和時間計算會將這些字段視為從未設(shè)置過的字段。 日歷實現(xiàn)類可以使用其特定的默認字段值進行日期/時間計算。 例如,如果 YEAR 字段值未定義,則 GregorianCalendar 使用 1970。

clear

public final void clear(int field)

設(shè)置此日歷未定義的給定日歷字段值和時間值(從紀元開始的毫秒偏移量)。 這意味著 isSet(field) 將返回 false,并且日期和時間計算會將字段視為從未設(shè)置過。 日歷實現(xiàn)類可以使用字段的特定默認值進行日期和時間計算。

HOUR_OF_DAY、HOUR 和 AM_PM 字段是獨立處理的,并應(yīng)用一天中時間的解析規(guī)則。 清除其中一個字段不會重置此日歷的小時值。 使用 set(Calendar.HOUR_OF_DAY, 0) 重置小時值。

參數(shù):

參數(shù)名稱 參數(shù)描述
field要清除的日歷字段。

isSet

public final boolean isSet(int field)

確定給定的日歷字段是否設(shè)置了值,包括該值已由 get 方法調(diào)用觸發(fā)的內(nèi)部字段計算設(shè)置的情況。

參數(shù):

參數(shù)名稱 參數(shù)描述
field要測試的日歷字段

返回:

如果給定的日歷字段設(shè)置了值,則為 true; 否則為false。

getDisplayName

public String getDisplayName(int field, int style, Locale locale)

返回給定樣式和語言環(huán)境中日歷字段值的字符串表示形式。 如果沒有字符串表示適用,則返回 null。 如果字符串表示適用于給定的日歷字段,則此方法調(diào)用 Calendar#get(int) 以獲取日歷字段值。

例如,如果這個 Calendar 是一個 GregorianCalendar 并且它的日期是 2005-01-01,那么 MONTH 字段的字符串表示形式將是英語語言環(huán)境中長格式的“January”或短格式的“Jan”。 但是,對于 DAY_OF_MONTH 字段沒有可用的字符串表示形式,并且此方法將返回 null。

默認實現(xiàn)支持 DateFormatSymbols 在給定語言環(huán)境中具有名稱的日歷字段。

參數(shù):

參數(shù)名稱 參數(shù)描述
field為其返回字符串表示的日歷字段
style應(yīng)用于字符串表示的樣式; SHORT_FORMAT (SHORT)、SHORT_STANDALONE、LONG_FORMAT (LONG)、LONG_STANDALONE、NARROW_FORMAT 或 NARROW_STANDALONE 之一。
locale字符串表示的語言環(huán)境(忽略語言環(huán)境指定的任何日歷類型)

返回:

給定樣式中給定字段的字符串表示形式,如果沒有字符串表示形式適用,則返回 null。

Throws:

Throw名稱 Throw描述
IllegalArgumentException如果字段或樣式無效,或者此日歷不寬松并且任何日歷字段具有無效值
NullPointerException如果語言環(huán)境為空

getDisplayNames

public MapString,Integer getDisplayNames(int field, int style, Locale locale)

返回一個 Map,其中包含給定樣式和語言環(huán)境中日歷字段的所有名稱及其對應(yīng)的字段值。例如,如果此 Calendar 是 GregorianCalendar,則返回的地圖將包含“Jan”到 JANUARY、“Feb”到 FEBRUARY 等,以英語語言環(huán)境中的簡寫形式。

由于使用單個字符,窄名稱可能不是唯一的,例如“S”代表星期日和星期六。在這種情況下,返回的 Map 中不包含窄名稱。

可以考慮其他日歷字段的值以確定一組顯示名稱。例如,如果此 Calendar 是陰陽歷系統(tǒng)并且 YEAR 字段給出的年份值具有閏月,則此方法將返回包含閏月名稱的月份名稱,并且月份名稱將映射到它們特定于年份的值。

默認實現(xiàn)支持包含在 DateFormatSymbols 中的顯示名稱。例如,如果字段為 MONTH,樣式為 ALL_STYLES,則此方法返回一個 Map,其中包含 DateFormatSymbols#getShortMonths() 和 DateFormatSymbols#getMonths() 返回的所有字符串。

參數(shù):

參數(shù)名稱 參數(shù)描述
field返回顯示名稱的日歷字段
style應(yīng)用于字符串表示的樣式; SHORT_FORMAT (SHORT)、SHORT_STANDALONE、LONG_FORMAT (LONG)、LONG_STANDALONE、NARROW_FORMAT 或 NARROW_STANDALONE 之一
locale顯示名稱的語言環(huán)境

返回:

包含樣式和語言環(huán)境中的所有顯示名稱及其字段值的 Map,如果沒有為字段定義顯示名稱,則為 null

Throws:

Throw名稱 Throw描述
IllegalArgumentException如果字段或樣式無效,或者此日歷不寬松并且任何日歷字段具有無效值
NullPointerException如果語言環(huán)境為空

complete

protected void complete()

填寫日歷字段中任何未設(shè)置的字段。 首先,如果尚未從日歷字段值計算時間值(與 Epoch 的毫秒偏移量),則調(diào)用 computeTime() 方法。 然后,調(diào)用 computeFields() 方法來計算所有日歷字段值。

getAvailableCalendarTypes

public static SetString getAvailableCalendarTypes()

返回一個不可修改的 Set,其中包含運行時環(huán)境中 Calendar 支持的所有日歷類型。 可用的日歷類型可用于 Unicode 語言環(huán)境擴展。 返回的 Set 至少包含“gregory”。 日歷類型不包括別名,例如“gregory”的“gregorian”。

返回:

一個不可修改的 Set 包含所有可用的日歷類型

getCalendarType

public String getCalendarType()

返回此日歷的日歷類型。 日歷類型由 Unicode 區(qū)域設(shè)置數(shù)據(jù)標記語言 (LDML) 規(guī)范定義。

此方法的默認實現(xiàn)返回此 Calendar 實例的類名。 任何實現(xiàn) LDML 定義的日歷系統(tǒng)的子類都應(yīng)該重寫此方法以返回適當?shù)娜諝v類型。

返回:

LDML 定義的日歷類型或此 Calendar 實例的類名

equals

public boolean equals(Object obj)

將此日歷與指定的對象進行比較。 當且僅當參數(shù)是同一日歷系統(tǒng)的日歷對象時,結(jié)果才為true,該對象在與此對象相同的日歷參數(shù)下表示相同的時間值(從紀元開始的毫秒偏移量)。

Calendar 參數(shù)是由 isLenient、getFirstDayOfWeek、getMinimalDaysInFirstWeek 和 getTimeZone 方法表示的值。 如果兩個日歷之間的這些參數(shù)有任何差異,則此方法返回 false。

使用 compareTo 方法僅比較時間值。

覆蓋:

類 Object 中的等于

參數(shù):

參數(shù)名稱 參數(shù)描述
obj比較的對象。

返回:

如果此對象等于 obj,則為 true; 否則為false。

hashCode

public int hashCode()

返回此日歷的哈希碼。

覆蓋:

類 Object 中的 hashCode

返回:

此對象的哈希碼值。

before

public boolean before(Object when)

返回此 Calendar 是否表示指定 Object 表示的時間之前的時間。 該方法等價于:

         compareTo(when) < 0 

當且僅當 when 是 Calendar 實例。 否則,該方法返回 false。

參數(shù):

參數(shù)名稱 參數(shù)描述
when要比較的對象

返回:

如果此日歷的時間早于 when 表示的時間,則為 true; 否則為false。

after

public boolean after(Object when)

返回此 Calendar 是否表示指定 Object 表示的時間之后的時間。 該方法等價于:

         compareTo(when) > 0 

當且僅當 when 是 Calendar 實例。 否則,該方法返回 false。

參數(shù):

Parameter Name Parameter Description
whenthe Object to be compared

返回:

如果此日歷的時間在 when 表示的時間之后,則為 true; 否則為false。

compareTo

public int compareTo(Calendar anotherCalendar)

比較兩個 Calendar 對象表示的時間值(從 Epoch 開始的毫秒偏移量)。

指定者:

接口 ComparableCalendar 中的 compareTo

參數(shù):

參數(shù)名稱 參數(shù)描述
anotherCalendar要比較的日歷。

返回:

如果參數(shù)表示的時間等于此日歷表示的時間,則值為 0; 如果此日歷的時間早于參數(shù)表示的時間,則值小于 0; 如果此日歷的時間在參數(shù)表示的時間之后,則值大于 0。

Throws:

Throw名稱 Throw描述
NullPointerException如果指定的日歷為空。
IllegalArgumentException如果由于任何無效的日歷值而無法獲取指定日歷對象的時間值。

add

public abstract void add(int field, int amount)

根據(jù)日歷的規(guī)則,在給定的日歷字段中添加或減去指定的時間量。 例如,要從日歷的當前時間減去 5 天,可以通過調(diào)用實現(xiàn):

add(Calendar.DAY_OF_MONTH, -5).

參數(shù):

參數(shù)名稱 參數(shù)描述
field日歷字段。
amount要添加到字段的日期或時間量。

roll

public abstract void roll(int field, boolean up)

在給定時間字段上添加或減去(上/下)單個時間單位,而不更改更大的字段。 例如,要將當前日期向上滾動一天,您可以通過調(diào)用來實現(xiàn):

roll(Calendar.DATE, true). 在年份或 Calendar.YEAR 字段上滾動時,它將在 1 和調(diào)用 getMaximum(Calendar.YEAR) 返回的值之間滾動年份值。 在月份或 Calendar.MONTH 字段上滾動時,日期等其他字段可能會發(fā)生沖突,需要更改。 例如,在 01/31/96 日期滾動月份將導致 02/29/96。 當滾動一天中的小時或 Calendar.HOUR_OF_DAY 字段時,它將滾動 0 到 23 之間的小時值,該值從零開始。

參數(shù):

參數(shù)名稱 參數(shù)描述
field時間字段。
up指示指定時間字段的值是向上滾動還是向下滾動。 如果向上滾動則使用 true,否則使用 false。

roll

public void roll(int field, int amount)

將指定的(簽名的)金額添加到指定的日歷字段而不更改更大的字段。 負數(shù)表示向下滾動。

注意:Calendar 上的這個默認實現(xiàn)只是重復調(diào)用滾動一個單位的 roll() 版本。 這可能并不總是正確的。 例如,如果 DAY_OF_MONTH 字段為 31,則滾動到二月會將其設(shè)置為 28。此函數(shù)的 GregorianCalendar 版本解決了這個問題。 其他子類也應(yīng)該提供對這個函數(shù)的覆蓋,以做正確的事情。

參數(shù):

參數(shù)名稱 參數(shù)描述
field日歷字段。
amount添加到日歷字段的簽名金額。

setTimeZone

public void setTimeZone(TimeZone value)

使用給定的時區(qū)值設(shè)置時區(qū)。

參數(shù):

參數(shù)名稱 參數(shù)描述
value給定的時區(qū)。

getTimeZone

public TimeZone getTimeZone()

獲取時區(qū)。

返回:

與此日歷關(guān)聯(lián)的時區(qū)對象。

setLenient

public void setLenient(boolean lenient)

指定日期/時間解釋是否寬松。 在寬松的解釋下,諸如“1996 年 2 月 942 日”這樣的日期將被視為等同于 1996 年 2 月 1 日之后的第 941 天。在嚴格(非寬松)的解釋下,這樣的日期將導致拋出異常。 默認是寬松的。

參數(shù):

參數(shù)名稱 參數(shù)描述
lenient如果要打開寬松模式,則為 true; 如果要關(guān)閉它,則為 false。

isLenient

public boolean isLenient()

告訴日期/時間解釋是否寬松。

返回:

<
網(wǎng)站標題:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OSCalendar
網(wǎng)址分享:http://www.dlmjj.cn/article/djpppgc.html