新聞中心
Calendar.Builder

創(chuàng)新互聯(lián)專注于拉孜網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供拉孜營(yíng)銷型網(wǎng)站建設(shè),拉孜網(wǎng)站制作、拉孜網(wǎng)頁(yè)設(shè)計(jì)、拉孜網(wǎng)站官網(wǎng)定制、微信小程序服務(wù),打造拉孜網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供拉孜網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
java.lang.Object
|---java.util.Calendar.Builder
public static class Calendar.Builder
extends ObjectCalendar.Builder 用于從各種日期時(shí)間參數(shù)創(chuàng)建日歷。
有兩種方法可以將日歷設(shè)置為日期時(shí)間值。一種是將 Instant 參數(shù)設(shè)置為距 Epoch 的毫秒偏移量。另一種是將單個(gè)字段參數(shù)(例如 Calendar#YEAR)設(shè)置為所需的值。這兩種方式不能混用。嘗試同時(shí)設(shè)置即時(shí)字段和單個(gè)字段將導(dǎo)致拋出 IllegalStateException。但是,允許覆蓋即時(shí)或字段參數(shù)的先前值。
如果沒(méi)有為確定日期和/或時(shí)間提供足夠的字段參數(shù),則在構(gòu)建日歷時(shí)使用日歷特定的默認(rèn)值。例如,如果沒(méi)有為公歷指定 Calendar#YEAR 值,則將使用 1970。如果字段參數(shù)之間存在任何沖突,則應(yīng)用解析規(guī)則。因此,字段設(shè)置的順序很重要。
除了日期時(shí)間參數(shù)外,還可以設(shè)置語(yǔ)言環(huán)境、時(shí)區(qū)、星期定義和寬大模式參數(shù)。
例子
以下是示例用法。示例代碼假定日歷常量是靜態(tài)導(dǎo)入的。
以下代碼生成日期為 2012-12-31(公歷)的日歷,因?yàn)樾瞧谝皇蔷哂?ISO 8601 兼容周參數(shù)的一周的第一天。
Calendar cal = new Calendar.Builder().setCalendarType("iso8601")
.setWeekDate(2013, 1, MONDAY).build();以下代碼生成日期為 1989-01-08(公歷)的日本日歷,假設(shè)默認(rèn) Calendar#ERA 是當(dāng)天開(kāi)始的平成。
Calendar cal = new Calendar.Builder().setCalendarType("japanese")
.setFields(YEAR, 1, DAY_OF_YEAR, 1).build();
構(gòu)造函數(shù)摘要
| 構(gòu)造函數(shù) | 描述 |
|---|---|
| Builder() | 構(gòu)造一個(gè) Calendar.Builder。 |
方法總結(jié)
| 修飾符和類型 | 方法 | 描述 |
|---|---|---|
| Calendar | build() | 返回由 setter 方法設(shè)置的參數(shù)構(gòu)建的 Calendar。 |
| Calendar.Builder | set(int field, int value) | 將字段參數(shù)設(shè)置為給定值。 |
| Calendar.Builder | setCalendarType(String type) | 將日歷類型參數(shù)設(shè)置為給定類型。 |
| Calendar.Builder | setDate(int year, int month, int dayOfMonth) | 將日期字段參數(shù)設(shè)置為由 year、month 和 dayOfMonth 給出的值。 |
| Calendar.Builder | setFields(int... fieldValuePairs) | 將字段參數(shù)設(shè)置為由 fieldValuePairs 給定的值,它們是字段及其值的對(duì)。 |
| Calendar.Builder | setInstant(long instant) | 將 Instant 參數(shù)設(shè)置為給定的瞬時(shí)值,該值是從 Epoch 的毫秒偏移量。 |
| Calendar.Builder | setInstant(Date instant) | 將 Instant 參數(shù)設(shè)置為由 Date 給出的瞬時(shí)值。 |
| Calendar.Builder | setLenient(boolean lenient) | 將 lenient 模式參數(shù)設(shè)置為 lenient 給出的值。 |
| Calendar.Builder | setLocale(Locale locale) | 將語(yǔ)言環(huán)境參數(shù)設(shè)置為給定的語(yǔ)言環(huán)境。 |
| Calendar.Builder | setTimeOfDay(int hourOfDay, int minute, int second) | 將時(shí)間字段參數(shù)設(shè)置為由 hourOfDay、minute 和 second 給出的值。 |
| Calendar.Builder | setTimeOfDay(int hourOfDay, int minute, int second, int millis) | 將時(shí)間字段參數(shù)設(shè)置為由 hourOfDay、minute、second 和 millis 給出的值。 |
| Calendar.Builder | setTimeZone(TimeZone zone) | 將時(shí)區(qū)參數(shù)設(shè)置為給定的區(qū)域。 |
| Calendar.Builder | setWeekDate(int weekYear, int weekOfYear, int dayOfWeek) | 將基于周的日期參數(shù)設(shè)置為具有給定日期說(shuō)明符的值 - 周年、年周和周日。 |
| Calendar.Builder | setWeekDefinition(int firstDayOfWeek, int minimalDaysInFirstWeek) | 將周定義參數(shù)設(shè)置為 firstDayOfWeek 和 minimumDaysInFirstWeek 給出的值,用于確定一年中的第一周。 |
| 從類 java.lang.Object 繼承的方法 |
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
構(gòu)造函數(shù)詳細(xì)信息
Builder
public Builder()
構(gòu)造一個(gè) Calendar.Builder。
方法詳情
setInstant
public Calendar.Builder setInstant(long instant)
將 Instant 參數(shù)設(shè)置為給定的瞬時(shí)值,該值是從 Epoch 的毫秒偏移量。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| instant | 從 Epoch 的毫秒偏移量 |
返回:
這個(gè) Calendar.Builder
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IllegalStateException | 如果已經(jīng)設(shè)置了任何字段參數(shù) |
setInstant
public Calendar.Builder setInstant(Date instant)
將 Instant 參數(shù)設(shè)置為由 Date 給出的瞬時(shí)值。 此方法等效于調(diào)用 setInstant(instant.getTime())。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| instant | 表示從 Epoch 開(kāi)始的毫秒偏移量的 Date |
返回:
這個(gè) Calendar.Builder
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| NullPointerException | 如果 instant 為空 |
| IllegalStateException | 如果已經(jīng)設(shè)置了任何字段參數(shù) |
set
public Calendar.Builder set(int field, int value)
將字段參數(shù)設(shè)置為給定值。 field 是 Calendar#fields 的索引,例如 Calendar#DAY_OF_MONTH。 此方法不執(zhí)行字段值驗(yàn)證。 在構(gòu)建日歷時(shí),任何超出范圍的值要么在寬松模式下被標(biāo)準(zhǔn)化,要么在非寬松模式下被檢測(cè)為無(wú)效值。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| field | 日歷字段的索引 |
| value | 字段值 |
返回:
這個(gè) Calendar.Builder
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IllegalArgumentException | 如果字段無(wú)效 |
| IllegalStateException | 如果已經(jīng)設(shè)置了即時(shí)值,或者如果字段設(shè)置太多(大約 Integer#MAX_VALUE)次。 |
setFields
public Calendar.Builder setFields(int... fieldValuePairs)
將字段參數(shù)設(shè)置為由 fieldValuePairs 給定的值,它們是字段及其值的對(duì)。 例如,
setFeilds(Calendar.YEAR, 2013,
Calendar.MONTH, Calendar.DECEMBER,
Calendar.DAY_OF_MONTH, 23);等價(jià)于以下集合調(diào)用的序列:
set(Calendar.YEAR, 2013)
.set(Calendar.MONTH, Calendar.DECEMBER)
.set(Calendar.DAY_OF_MONTH, 23);參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| fieldValuePairs | 字段值對(duì) |
返回:
這個(gè) Calendar.Builder
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| NullPointerException | 如果 fieldValuePairs 為空 |
| IllegalArgumentException | 如果任何字段無(wú)效,或者 fieldValuePairs.length 是奇數(shù)。 |
| IllegalStateException | 如果設(shè)置了即時(shí)值,或者字段設(shè)置的次數(shù)過(guò)多(大約為 Integer#MAX_VALUE)次。 |
setDate
public Calendar.Builder setDate(int year, int month, int dayOfMonth)
將日期字段參數(shù)設(shè)置為由 year、month 和 dayOfMonth 給出的值。 此方法等效于調(diào)用:
setFields(Calendar.YEAR, year,
Calendar.MONTH, month,
Calendar.DAY_OF_MONTH, dayOfMonth);參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| year | 日歷#YEAR 值 |
| month | Calendar#MONTH 值(月份編號(hào)從 0 開(kāi)始)。 |
| dayOfMonth | Calendar#DAY_OF_MONTH 值 |
返回:
這個(gè) Calendar.Builder
setTimeOfDay
public Calendar.Builder setTimeOfDay(int hourOfDay, int minute, int second)
將時(shí)間字段參數(shù)設(shè)置為由 hourOfDay、minute 和 second 給出的值。 此方法等效于調(diào)用:
setTimeOfDay(hourOfDay, minute, second, 0);參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| hourOfDay | Calendar#HOUR_OF_DAY 值(24 小時(shí)制) |
| minute | 日歷#MINUTE 值 |
| second | 日歷#SECOND 值 |
返回:
這個(gè) Calendar.Builder
setTimeOfDay
public Calendar.Builder setTimeOfDay(int hourOfDay, int minute, int second, int millis)
將時(shí)間字段參數(shù)設(shè)置為由 hourOfDay、minute、second 和 millis 給出的值。 此方法等效于調(diào)用:
setFields(Calendar.HOUR_OF_DAY, hourOfDay,
Calendar.MINUTE, minute,
Calendar.SECOND, second,
Calendar.MILLISECOND, millis);參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| hourOfDay | Calendar#HOUR_OF_DAY 值(24 小時(shí)制) |
| minute | 日歷#MINUTE 值 |
| second | 日歷#SECOND 值 |
| millis | 日歷#MILLISECOND 值 |
返回:
這個(gè) Calendar.Builder
setWeekDate
public Calendar.Builder setWeekDate(int weekYear, int weekOfYear, int dayOfWeek)
將基于周的日期參數(shù)設(shè)置為具有給定日期說(shuō)明符的值 - 周年、年周和周日。
如果指定的日歷不支持星期日期,則 build 方法將拋出 IllegalArgumentException。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| weekYear | 一周年 |
| weekOfYear | 基于 weekYear 的周數(shù) |
| dayOfWeek | 星期幾值:Calendar#DAY_OF_WEEK 字段的常量之一:Calendar#SUNDAY, ..., Calendar#SATURDAY。 |
返回:
這個(gè) Calendar.Builder
setTimeZone
public Calendar.Builder setTimeZone(TimeZone zone)
將時(shí)區(qū)參數(shù)設(shè)置為給定的區(qū)域。 如果沒(méi)有為此 Caledar.Builder 提供時(shí)區(qū)參數(shù),則 TimeZone#getDefault() 將在構(gòu)建方法中使用。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| zone | 時(shí)區(qū) |
返回:
這個(gè) Calendar.Builder
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| NullPointerException | 如果區(qū)域?yàn)榭?/td> |
setLenient
public Calendar.Builder setLenient(boolean lenient)
將 lenient 模式參數(shù)設(shè)置為 lenient 給出的值。 如果此 Calendar.Builder 沒(méi)有給出 lenient 參數(shù),則在 build 方法中將使用 lenient 模式。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| lenient | 寬松模式下為true; 非寬松模式為 false |
返回:
這個(gè) Calendar.Builder
setCalendarType
public Calendar.Builder setCalendarType(String type)
將日歷類型參數(shù)設(shè)置為給定類型。 此方法給出的日歷類型優(yōu)先于語(yǔ)言環(huán)境給出的任何顯式或隱式日歷類型。
除了 Calendar#getAvailableCalendarTypes() 方法返回的可用日歷類型之外,作為“gregory”的別名的“gregorian”和“iso8601”可以與此方法一起使用。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| type | 日歷類型 |
返回:
這個(gè) Calendar.Builder
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| NullPointerException | 如果類型為空 |
| IllegalArgumentException | 如果類型未知 |
| IllegalStateException | 如果已經(jīng)設(shè)置了另一種日歷類型 |
setLocale
public Calendar.Builder setLocale(Locale locale)
將語(yǔ)言環(huán)境參數(shù)設(shè)置為給定的語(yǔ)言環(huán)境。 如果沒(méi)有為此 Calendar.Builder 指定區(qū)域設(shè)置,則將使用 Locale.Category#FORMAT 的 Locale#getDefault(Locale.Category)。
如果調(diào)用 setCalendarType 方法沒(méi)有明確給出日歷類型,則使用 Locale 值來(lái)確定要構(gòu)建的日歷類型。
如果調(diào)用 setWeekDefinition 方法沒(méi)有明確給出周定義參數(shù),則使用區(qū)域設(shè)置的默認(rèn)值。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| locale | 語(yǔ)言環(huán)境 |
返回:
這個(gè) Calendar.Builder
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| NullPointerException | 如果語(yǔ)言環(huán)境為空 |
setWeekDefinition
public Calendar.Builder setWeekDefinition(int firstDayOfWeek, int minimalDaysInFirstWeek)
將周定義參數(shù)設(shè)置為 firstDayOfWeek 和 minimumDaysInFirstWeek 給出的值,用于確定一年中的第一周。 此方法給出的參數(shù)優(yōu)先于語(yǔ)言環(huán)境給出的默認(rèn)值。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| firstDayOfWeek | 一周的第一天; Calendar#SUNDAY 到 Calendar#SATURDAY 之一 |
| minimalDaysInFirstWeek | 第一周的最少天數(shù) (1..7) |
返回:
這個(gè) Calendar.Builder
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IllegalArgumentException | 如果 firstDayOfWeek 或 minimumDaysInFirstWeek 無(wú)效 |
build
public Calendar build()
返回由 setter 方法設(shè)置的參數(shù)構(gòu)建的 Calendar。 setCalendarType 方法或語(yǔ)言環(huán)境給出的日歷類型用于確定要?jiǎng)?chuàng)建的日歷。 如果沒(méi)有給出明確的日歷類型,則創(chuàng)建區(qū)域設(shè)置的默認(rèn)日歷。
如果日歷類型為“iso8601”,則將 GregorianCalendar 的 GregorianCalendar#setGregorianChange(Date) 設(shè)置為 Date(Long.MIN_VALUE) 以作為預(yù)想的公歷。 其周定義參數(shù)也設(shè)置為與 ISO 8601 標(biāo)準(zhǔn)兼容。 請(qǐng)注意,使用“iso8601”創(chuàng)建的 GregorianCalendar#getCalendarType() 方法返回“gregory”。
如果沒(méi)有明確給出這些參數(shù),則默認(rèn)值用于區(qū)域設(shè)置和時(shí)區(qū)。
任何超出范圍的字段值要么在寬松模式下被規(guī)范化,要么在非寬松模式下被檢測(cè)為無(wú)效值。
返回:
使用此 Calendar.Builder 的參數(shù)構(gòu)建的日歷
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IllegalArgumentException | 如果日歷類型未知,或者在非寬松模式下提供了任何無(wú)效字段值,或者為不支持星期日期的日歷類型提供了星期日期。 |
網(wǎng)頁(yè)題目:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OSCalendar.Builder
轉(zhuǎn)載來(lái)源:http://m.fisionsoft.com.cn/article/dpoojph.html


咨詢
建站咨詢
