日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間: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è)計(jì),全程項(xiàng)目跟蹤,創(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 類是一個(gè)抽象類,它提供了在特定時(shí)刻和一組日歷字段(例如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等)之間進(jìn)行轉(zhuǎn)換的方法,以及用于操作日歷字段(例如獲取日期)的方法 下周的。 時(shí)間的瞬間可以用毫秒值表示,該值是從 1970 年 1 月 1 日 00:00:00.000 GMT(格里高利)紀(jì)元的偏移量。

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

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

     Calendar rightNow = Calendar.getInstance(); 

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

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

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

Leniency

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

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

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

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

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

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

對(duì)于日期字段:

 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 

對(duì)于一天中的時(shí)間字段:

 HOUR_OF_DAY AM_PM + HOUR 

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

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

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

日期或時(shí)間格式字符串不是日歷定義的一部分,因?yàn)橛脩舯仨氃谶\(yùn)行時(shí)修改或覆蓋這些字符串。使用 DateFormat 格式化日期。

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

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

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

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

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

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

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

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

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

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

使用模式。 為了激發(fā) add() 和 roll() 的行為,考慮一個(gè)帶有月、日和年的遞增和遞減按鈕的用戶界面組件,以及一個(gè)底層的 GregorianCalendar。 如果界面顯示為 1999 年 1 月 31 日,用戶按下月份增量按鈕,應(yīng)該顯示什么? 如果底層實(shí)現(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ù)期的那樣運(yùn)行。

嵌套類摘要

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

字段摘要

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

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

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

方法總結(jié)

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

字段詳細(xì)信息

ALL_STYLES

public static final int ALL_STYLES

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

AM

public static final int AM

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

AM_PM

public static final int AM_PM

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

APRIL

public static final int APRIL

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

AUGUST

public static final int AUGUST

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

DATE

public static final int DATE

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

DAY_OF_MONTH

public static final int DAY_OF_MONTH

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

DAY_OF_WEEK

public static final int DAY_OF_WEEK

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

DAY_OF_WEEK_IN_MONTH

public static final int DAY_OF_WEEK_IN_MONTH

get 和 set 的字段編號(hào),指示當(dāng)前月份中星期幾的序號(hào)。 與 DAY_OF_WEEK 字段一起,它唯一地指定一個(gè)月內(nèi)的一天。 與 WEEK_OF_MONTH 和 WEEK_OF_YEAR 不同,該字段的值不依賴于 getFirstDayOfWeek() 或 getMinimalDaysInFirstWeek()。 DAY_OF_MONTH 1 到 7 始終對(duì)應(yīng) DAY_OF_WEEK_IN_MONTH 1; 8 到 14 對(duì)應(yīng)于 DAY_OF_WEEK_IN_MONTH 2,依此類推。 DAY_OF_WEEK_IN_MONTH 0 表示 DAY_OF_WEEK_IN_MONTH 1 之前的一周。負(fù)值從月底開始倒數(shù),因此一個(gè)月的最后一個(gè)星期日指定為 DAY_OF_WEEK = SUNDAY, DAY_OF_WEEK_IN_MONTH = -1。 因?yàn)樨?fù)值向后計(jì)數(shù),所以它們?cè)谠路輧?nèi)的對(duì)齊方式通常與正值不同。 例如,如果一個(gè)月有 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 的字段編號(hào),表示當(dāng)前年份中的天數(shù)。 一年的第一天的值為 1。

DECEMBER

public static final int DECEMBER

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

DST_OFFSET

public static final int DST_OFFSET

get 和 set 的字段編號(hào),以毫秒為單位指示夏令時(shí)偏移量。

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

ERA

public static final int ERA

用于表示時(shí)代的 get 和 set 字段編號(hào),例如儒略歷中的 AD 或 BC。 這是一個(gè)特定于日歷的值。

FEBRUARY

public static final int FEBRUARY

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

FIELD_COUNT

public static final int FIELD_COUNT

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

FRIDAY

public static final int FRIDAY

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

HOUR

public static final int HOUR

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

HOUR_OF_DAY

public static final int HOUR_OF_DAY

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

JANUARY

public static final int JANUARY

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

JULY

public static final int JULY

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

JUNE

public static final int JUNE

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

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 的樣式說明符,指示獨(dú)立使用的長名稱,例如作為日歷標(biāo)題的月份名稱。

MARCH

public static final int MARCH

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

MAY

public static final int MAY

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

MILLISECOND

public static final int MILLISECOND

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

MINUTE

public static final int MINUTE

get 和 set 的字段編號(hào),指示一小時(shí)內(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 的字段編號(hào),指示月份。 這是特定于日歷的值。 公歷和儒略歷中的第一個(gè)月是 JANUARY,即 0; 最后一個(gè)取決于一年中的月數(shù)。

NARROW_FORMAT

public static final int NARROW_FORMAT

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

NARROW_STANDALONE

public static final int NARROW_STANDALONE

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

NOVEMBER

public static final int NOVEMBER

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

OCTOBER

public static final int OCTOBER

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

PM

public static final int PM

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

SATURDAY

public static final int SATURDAY

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

SECOND

public static final int SECOND

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

SEPTEMBER

public static final int SEPTEMBER

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

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 的樣式說明符,指示獨(dú)立使用的短名稱,例如作為日歷標(biāo)題的月份縮寫。

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 字段的值表示一年中的第十三個(gè)月。 盡管 GregorianCalendar 不使用此值,但農(nóng)歷使用。

WEDNESDAY

public static final int WEDNESDAY

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

WEEK_OF_MONTH

public static final int WEEK_OF_MONTH

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

WEEK_OF_YEAR

public static final int WEEK_OF_YEAR

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

YEAR

public static final int YEAR

get 和 set 的字段編號(hào),指示年份。 這是一個(gè)特定于日歷的值; 請(qǐng)參閱子類文檔。

ZONE_OFFSET

public static final int ZONE_OFFSET

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

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

areFieldsSet

protected boolean areFieldsSet

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

fields

protected int[] fields

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

isSet

protected boolean[] isSet

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

isTimeSet

protected boolean isTimeSet

如果時(shí)間值有效,則為true。 通過更改字段 [] 的項(xiàng)目使時(shí)間無效。

time

protected long time

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

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

Calendar

protected Calendar()

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

Calendar

protected Calendar(TimeZone zone, Locale aLocale)

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

參數(shù):

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

方法詳情

getInstance

public static Calendar getInstance()

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

返回:

日歷。

getInstance

public static Calendar getInstance(TimeZone zone)

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

參數(shù):

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

返回:

日歷。

getInstance

public static Calendar getInstance(Locale aLocale)

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

參數(shù):

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

返回:

日歷。

getInstance

public static Calendar getInstance(TimeZone zone, Locale aLocale)

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

參數(shù):

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

返回:

日歷。

getAvailableLocales

public static Locale[] getAvailableLocales()

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

返回:

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

computeTime

protected abstract void computeTime()

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

computeFields

protected abstract void computeFields()

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

getTime

public final Date getTime()

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

返回:

表示時(shí)間值的日期。

setTime

public final void setTime(Date date)

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

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

參數(shù):

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

getTimeInMillis

public long getTimeInMillis()

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

返回:

當(dāng)前時(shí)間,從紀(jì)元開始的 UTC 毫秒。

setTimeInMillis

public void setTimeInMillis(long millis)

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

參數(shù):

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

get

public int get(int field)

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

參數(shù):

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

返回:

給定日歷字段的值。

Throws:

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

internalGet

protected final int internalGet(int field)

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

參數(shù):

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

返回:

給定日歷字段的值。

set

public void set(int field, int value)

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

參數(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 的值。 保留其他日歷字段的先前值。 如果不需要,請(qǐng)先調(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 的值。 保留其他字段的先前值。 如果不需要,請(qǐng)先調(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 的值。 保留其他字段的先前值。 如果不需要,請(qǐng)先調(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è)置此日歷未定義的所有日歷字段值和時(shí)間值(從紀(jì)元開始的毫秒偏移量)。 這意味著 isSet() 將為所有日歷字段返回 false,并且日期和時(shí)間計(jì)算會(huì)將這些字段視為從未設(shè)置過的字段。 日歷實(shí)現(xiàn)類可以使用其特定的默認(rèn)字段值進(jìn)行日期/時(shí)間計(jì)算。 例如,如果 YEAR 字段值未定義,則 GregorianCalendar 使用 1970。

clear

public final void clear(int field)

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

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

參數(shù):

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

isSet

public final boolean isSet(int field)

確定給定的日歷字段是否設(shè)置了值,包括該值已由 get 方法調(diào)用觸發(fā)的內(nèi)部字段計(jì)算設(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) 以獲取日歷字段值。

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

默認(rèn)實(shí)現(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)

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

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

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

默認(rèn)實(shí)現(xiàn)支持包含在 DateFormatSymbols 中的顯示名稱。例如,如果字段為 MONTH,樣式為 ALL_STYLES,則此方法返回一個(gè) 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è)置的字段。 首先,如果尚未從日歷字段值計(jì)算時(shí)間值(與 Epoch 的毫秒偏移量),則調(diào)用 computeTime() 方法。 然后,調(diào)用 computeFields() 方法來計(jì)算所有日歷字段值。

getAvailableCalendarTypes

public static SetString getAvailableCalendarTypes()

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

返回:

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

getCalendarType

public String getCalendarType()

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

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

返回:

LDML 定義的日歷類型或此 Calendar 實(shí)例的類名

equals

public boolean equals(Object obj)

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

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

使用 compareTo 方法僅比較時(shí)間值。

覆蓋:

類 Object 中的等于

參數(shù):

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

返回:

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

hashCode

public int hashCode()

返回此日歷的哈希碼。

覆蓋:

類 Object 中的 hashCode

返回:

此對(duì)象的哈希碼值。

before

public boolean before(Object when)

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

         compareTo(when) < 0 

當(dāng)且僅當(dāng) when 是 Calendar 實(shí)例。 否則,該方法返回 false。

參數(shù):

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

返回:

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

after

public boolean after(Object when)

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

         compareTo(when) > 0 

當(dāng)且僅當(dāng) when 是 Calendar 實(shí)例。 否則,該方法返回 false。

參數(shù):

Parameter Name Parameter Description
whenthe Object to be compared

返回:

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

compareTo

public int compareTo(Calendar anotherCalendar)

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

指定者:

接口 ComparableCalendar 中的 compareTo

參數(shù):

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

返回:

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

Throws:

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

add

public abstract void add(int field, int amount)

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

add(Calendar.DAY_OF_MONTH, -5).

參數(shù):

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

roll

public abstract void roll(int field, boolean up)

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

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

參數(shù):

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

roll

public void roll(int field, int amount)

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

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

參數(shù):

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

setTimeZone

public void setTimeZone(TimeZone value)

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

參數(shù):

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

getTimeZone

public TimeZone getTimeZone()

獲取時(shí)區(qū)。

返回:

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

setLenient

public void setLenient(boolean lenient)

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

參數(shù):

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

isLenient

public boolean isLenient()

告訴日期/時(shí)間解釋是否寬松。

返回:

<
標(biāo)題名稱:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OSCalendar
分享路徑:http://m.5511xx.com/article/djpppgc.html