新聞中心
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, ComparableCalendar 類是一個抽象類,它提供了在特定時刻和一組日歷字段(例如 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 等。
注意:某些奇異時間的解釋可能存在一定的歧義,通過以下方式解決:
- 23:59 是一天的最后一分鐘,00:00 是第二天的第一分鐘。 因此,1999 年 12 月 31 日 23:59 < 2000 年 1 月 1 日 00:00 < 2000 年 1 月 1 日 00:01。
- 雖然歷史上不準確,但午夜也屬于“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 class | Calendar.Builder | Calendar.Builder 用于從各種日期時間參數(shù)創(chuàng)建日歷。 |
字段摘要
| 修飾符和類型 | 字段 | 描述 |
|---|---|---|
| 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[] 與當前設(shè)置的時間同步,則為true。 |
| static int | AUGUST | MONTH 字段的值,指示公歷和儒略歷中一年中的第 8 個月。 |
| 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 的字段編號,表示當前年份中的天數(shù)。 |
| 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 識別的不同字段的數(shù)量。 |
| protected int[] | fields | 此日歷當前設(shè)置時間的日歷字段值。 |
| static int | FRIDAY | 表示星期五的 DAY_OF_WEEK 字段的值。 |
| static int | HOUR | get 和 set 的字段編號,指示上午或下午的時間。 |
| static int | HOUR_OF_DAY | get 和 set 的字段編號,指示一天中的小時。 |
| protected boolean[] | isSet | 指示是否設(shè)置了日歷的指定日歷字段的標志。 |
| protected boolean | isTimeSet | 如果時間值有效,則為true。 |
| static int | JANUARY | MONTH 字段的值,指示公歷和儒略歷中一年中的第一個月。 |
| static int | JULY | MONTH 字段的值,指示公歷和儒略歷中一年中的第七個月。 |
| static int | JUNE | MONTH 字段的值,指示公歷和儒略歷中一年中的第六個月。 |
| static int | LONG | getDisplayName 和 getDisplayNames 的樣式說明符,等效于 LONG_FORMAT。 |
| static int | LONG_FORMAT | getDisplayName 和 getDisplayNames 的樣式說明符,指示用于格式的長名稱。 |
| static int | LONG_STANDALONE | getDisplayName 和 getDisplayNames 的樣式說明符,指示獨立使用的長名稱,例如作為日歷標題的月份名稱。 |
| static int | MARCH | MONTH 字段的值,指示公歷和儒略歷中一年中的第三個月。 |
| static int | MAY | MONTH 字段的值,指示公歷和儒略歷中一年中的第五個月。 |
| static int | MILLISECOND | get 和 set 的字段編號,指示秒內(nèi)的毫秒。 |
| static int | MINUTE | get 和 set 的字段編號,指示一小時內(nèi)的分鐘。 |
| static int | MONDAY | DAY_OF_WEEK 字段的值表示星期一。 |
| static int | MONTH | get 和 set 的字段編號,指示月份。 |
| static int | NARROW_FORMAT | getDisplayName 和 getDisplayNames 的樣式說明符,指示用于格式的窄名稱。 |
| static int | NARROW_STANDALONE | getDisplayName 和 getDisplayNames 的樣式說明符分別指示窄名稱。 |
| static int | NOVEMBER | MONTH 字段的值,指示公歷和儒略歷中一年中的第十一個月。 |
| static int | OCTOBER | MONTH 字段的值,指示公歷和儒略歷中一年中的第十個月。 |
| static int | PM | AM_PM 字段的值,指示一天中從中午到午夜之前的時段。 |
| static int | SATURDAY | 表示星期六的 DAY_OF_WEEK 字段的值。 |
| static int | SECOND | get 和 set 的字段編號,指示一分鐘內(nèi)的秒數(shù)。 |
| static int | SEPTEMBER | MONTH 字段的值,指示公歷和儒略歷中一年中的第 9 個月。 |
| static int | SHORT | getDisplayName 和 getDisplayNames 的樣式說明符,等效于 SHORT_FORMAT。 |
| static int | SHORT_FORMAT | getDisplayName 和 getDisplayNames 的樣式說明符,指示用于格式的短名稱。 |
| static int | SHORT_STANDALONE | getDisplayName 和 getDisplayNames 的樣式說明符,指示獨立使用的短名稱,例如作為日歷標題的月份縮寫。 |
| static int | SUNDAY | 表示星期日的 DAY_OF_WEEK 字段的值。 |
| static int | THURSDAY | 表示星期四的 DAY_OF_WEEK 字段的值。 |
| protected long | time | 此日歷的當前設(shè)置時間,以 1970 年 1 月 1 日 0:00:00 GMT 之后的毫秒數(shù)表示。 |
| static int | TUESDAY | 表示星期二的 DAY_OF_WEEK 字段的值。 |
| static int | UNDECIMBER | MONTH 字段的值表示一年中的第十三個月。 |
| static int | WEDNESDAY | 表示星期三的 DAY_OF_WEEK 字段的值。 |
| static int | WEEK_OF_MONTH | get 和 set 的字段編號,指示當前月份中的周數(shù)。 |
| static int | WEEK_OF_YEAR | get 和 set 的字段編號,表示當前年份中的周數(shù)。 |
| static int | YEAR | get 和 set 的字段編號,指示年份。 |
| static int | ZONE_OFFSET | get 和 set 的字段編號,指示與 GMT 的原始偏移量(以毫秒為單位)。 |
構(gòu)造函數(shù)摘要
| 修飾符 | 構(gòu)造函數(shù) | 描述 |
|---|---|---|
| protected | Calendar() | 構(gòu)造一個具有默認時區(qū)和默認 FORMAT 語言環(huán)境的日歷。 |
| protected | Calendar(TimeZone zone, Locale aLocale) | 構(gòu)造具有指定時區(qū)和語言環(huán)境的日歷。 |
方法總結(jié)
| 修飾符和類型 | 方法 | 描述 |
|---|---|---|
| abstract void | add(int field, int amount) | 根據(jù)日歷的規(guī)則,在給定的日歷字段中添加或減去指定的時間量。 |
| boolean | after(Object when) | 返回此 Calendar 是否表示指定 Object 表示的時間之后的時間。 |
| boolean | before(Object when) | 返回此 Calendar 是否表示指定 Object 表示的時間之前的時間。 |
| void | clear() | 設(shè)置此日歷未定義的所有日歷字段值和時間值(從紀元開始的毫秒偏移量)。 |
| void | clear(int field) | 設(shè)置此日歷未定義的給定日歷字段值和時間值(從紀元開始的毫秒偏移量)。 |
| Object | clone() | 創(chuàng)建并返回此對象的副本。 |
| int | compareTo(Calendar anotherCalendar) | 比較兩個 Calendar 對象表示的時間值(從 Epoch 開始的毫秒偏移量)。 |
| protected void | complete() | 填寫日歷字段中任何未設(shè)置的字段。 |
| protected abstract void | computeFields() | 將當前毫秒時間值 time 轉(zhuǎn)換為 [fields] 中的日歷字段值。 |
| protected abstract void | computeTime() | 將 [fields] 中的當前日歷字段值轉(zhuǎn)換為毫秒時間值 time。 |
| boolean | equals(Object obj) | 將此日歷與指定的對象進行比較。 |
| int | get(int field) | 返回給定日歷字段的值。 |
| int | getActualMaximum(int field) | 在給定此日歷的時間值的情況下,返回指定日歷字段可以具有的最大值。 |
| int | getActualMinimum(int field) | 在給定此日歷的時間值的情況下,返回指定日歷字段可能具有的最小值。 |
| static SetString | getAvailableCalendarTypes() | 返回一個不可修改的 Set,其中包含運行時環(huán)境中 Calendar 支持的所有日歷類型。 |
| static Locale[] | getAvailableLocales() | 返回此類的 getInstance 方法可以為其返回本地化實例的所有語言環(huán)境的數(shù)組。 |
| String | getCalendarType() | 返回此日歷的日歷類型。 |
| String | getDisplayName(int field, int style, Locale locale) | 返回給定樣式和語言環(huán)境中日歷字段值的字符串表示形式。 |
| MapString,Integer | getDisplayNames(int field, int style, Locale locale) | 返回一個 Map,其中包含給定樣式和語言環(huán)境中日歷字段的所有名稱及其對應(yīng)的字段值。 |
| int | getFirstDayOfWeek() | 獲取一周的第一天是什么; 例如,美國的星期日,法國的星期一。 |
| abstract int | getGreatestMinimum(int field) | 返回此 Calendar 實例的給定日歷字段的最大最小值。 |
| static Calendar | getInstance() | 獲取使用默認時區(qū)和語言環(huán)境的日歷。 |
| static Calendar | getInstance(Locale aLocale) | 獲取使用默認時區(qū)和指定區(qū)域設(shè)置的日歷。 |
| static Calendar | getInstance(TimeZone zone) | 獲取使用指定時區(qū)和默認語言環(huán)境的日歷。 |
| static Calendar | getInstance(TimeZone zone, Locale aLocale) | 獲取具有指定時區(qū)和語言環(huán)境的日歷。 |
| abstract int | getLeastMaximum(int field) | 返回此 Calendar 實例的給定日歷字段的最低最大值。 |
| abstract int | getMaximum(int field) | 返回此 Calendar 實例的給定日歷字段的最大值。 |
| int | getMinimalDaysInFirstWeek() | 獲取一年中第一周所需的最少天數(shù); 例如,如果第一周定義為包含一年中第一個月的第一天,則此方法返回 1。 |
| abstract int | getMinimum(int field) | 返回此 Calendar 實例的給定日歷字段的最小值。 |
| Date | getTime() | 返回一個 Date 對象,表示此日歷的時間值(從 Epoch 開始的毫秒偏移量)。 |
| long | getTimeInMillis() | 返回此日歷的時間值(以毫秒為單位)。 |
| TimeZone | getTimeZone() | 獲取時區(qū)。 |
| int | getWeeksInWeekYear() | 返回此日歷表示的一周年中的周數(shù)。 |
| int | getWeekYear() | 返回此日歷表示的周年。 |
| int | hashCode() | 返回此日歷的哈希碼。 |
| protected int | internalGet(int field) | 返回給定日歷字段的值。 |
| boolean | isLenient() | 告訴日期/時間解釋是否寬松。 |
| boolean | isSet(int field) | 確定給定的日歷字段是否設(shè)置了值,包括該值已由 get 方法調(diào)用觸發(fā)的內(nèi)部字段計算設(shè)置的情況。 |
| boolean | isWeekDateSupported() | 返回此日歷是否支持星期日期。 |
| abstract void | roll(int field, boolean up) | 在給定時間字段上添加或減去(上/下)單個時間單位,而不更改更大的字段。 |
| void | roll(int field, int amount) | 將指定的(簽名的)金額添加到指定的日歷字段而不更改更大的字段。 |
| void | set(int field, int value) | 將給定的日歷字段設(shè)置為給定的值。 |
| void | set(int year, int month, int date) | 設(shè)置日歷字段 YEAR、MONTH 和 DAY_OF_MONTH 的值。 |
| void | set(int year, int month, int date, int hourOfDay, int minute) | 設(shè)置日歷字段 YEAR、MONTH、DAY_OF_MONTH、HOUR_OF_DAY 和 MINUTE 的值。 |
| 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 的值。 |
| void | setFirstDayOfWeek(int value) | 設(shè)置一周的第一天是什么; 例如,美國的星期日,法國的星期一。 |
| void | setLenient(boolean lenient) | 指定日期/時間解釋是否寬松。 |
| void | setMinimalDaysInFirstWeek(int value) | 設(shè)置一年中第一周所需的最少天數(shù); 例如,如果第一周被定義為包含一年中第一個月的第一天,則使用值 1 調(diào)用此方法。 |
| void | setTime(Date date) | 使用給定的日期設(shè)置此日歷的時間。 |
| void | setTimeInMillis(long millis) | 根據(jù)給定的 long 值設(shè)置此日歷的當前時間。 |
| void | setTimeZone(TimeZone value) | 使用給定的時區(qū)值設(shè)置時區(qū)。 |
| void | setWeekDate(int weekYear, int weekOfYear, int dayOfWeek) | 使用給定的日期說明符設(shè)置此日歷的日期 - 星期幾、一年中的星期和星期幾。 |
| Instant | toInstant() | 將此對象轉(zhuǎn)換為 Instant。 |
| String | toString() | 返回此日歷的字符串表示形式。 |
| 從類 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 |
|---|---|
| when | the 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


咨詢
建站咨詢
