語言

DateTimeFormatter.WithZone(ZoneId) 方法

定義

回傳一份帶有新覆蓋區域的格式化器副本。

[Android.Runtime.Register("withZone", "(Ljava/time/ZoneId;)Ljava/time/format/DateTimeFormatter;", "", ApiSince=26)]
public Java.Time.Format.DateTimeFormatter? WithZone(Java.Time.ZoneId? zone);
[<Android.Runtime.Register("withZone", "(Ljava/time/ZoneId;)Ljava/time/format/DateTimeFormatter;", "", ApiSince=26)>]
member this.WithZone : Java.Time.ZoneId -> Java.Time.Format.DateTimeFormatter

參數

zone
ZoneId

新的覆寫區域,若無覆寫則為無效

傳回

基於此格式化器,並要求覆蓋區域,而非 null

屬性

備註

回傳一份帶有新覆蓋區域的格式化器副本。

此時會回傳一個與此格式器狀態相似但覆蓋區域為設定的格式化器。 預設情況下,formatter 沒有覆蓋區域,回傳 null。

如果新增了覆寫,任何格式化或解析過的瞬間都會受到影響。

格式化時,若時域物件包含瞬間,則會利用覆蓋區域將其轉換為區域日期時間。 時間是否為瞬間可透過查詢欄位 ChronoField#INSTANT_SECONDS INSTANT_SECONDS 來判斷。 如果輸入有時間順序,除非被覆寫,否則會被保留。 若輸入沒有時間順序,例如 Instant,則使用 ISO 時間順序。

若時間物件不包含瞬間,但包含偏移量,則會進行額外檢查。 如果正規化覆蓋區是與時間偏移不同的偏移量,則會拋出 a DateTimeException 。 在其他情況下,覆蓋區域會被加入時間,取代先前的任何區域,但日期/時間不變。

在解析時,有兩種不同的情況需要考慮。 如果某個區域是直接從文字解析而來,例如因為 DateTimeFormatterBuilder#appendZoneId() 使用了 ,那麼這個覆寫區域就沒有效果。 若尚未解析任何區域,則該覆蓋區域將包含在解析結果中,可用來建立瞬間與日期時間。

此實例是不可變且不受此方法呼叫影響的。

java.time.format.DateTimeFormatter.withZone(java.time.ZoneId)Java 檔。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於