語言

ZoneId 類別

定義

一個時區 ID,例如 Europe/Paris。

[Android.Runtime.Register("java/time/ZoneId", ApiSince=26, DoNotGenerateAcw=true)]
public abstract class ZoneId : Java.Lang.Object, IDisposable, Java.IO.ISerializable
[<Android.Runtime.Register("java/time/ZoneId", ApiSince=26, DoNotGenerateAcw=true)>]
type ZoneId = class
    inherit Object
    interface ISerializable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
繼承
衍生
屬性
實作

備註

一個時區 ID,例如 Europe/Paris。

ZoneId A 用來表示在 a Instant 與 LocalDateTime之間轉換的規則。 ID 有兩種不同類型:ul<li 固定偏移量——一種完全解析的 UTC/Greenwich 偏移量,對所有當地日期時間>使用 li<地理區域——此區域適用特定規則以尋找 UTC/Greenwich >偏移量 /ul<。大多數固定偏移量以 >表示。<>ZoneOffset 呼叫 #normalized() 任意 ZoneId 將確保固定偏移 ID 會被表示為 ZoneOffset。

實際規則,描述偏移量何時及如何變化,定義為 ZoneRules。 這個類別只是用來取得底層規則的 ID。 採用此方法是因為規則由政府定義且經常變動,而 ID 則是穩定的。

這種區分還有其他影響。 序列化 ZoneId 只會傳送 ID,而序列化規則則傳送整個資料集。 同樣地,兩個 ID 的比較僅檢視 ID,而兩個規則的比較則檢視整個資料集。

<h2>時區 ID/<h2> 該 ID 在系統中是唯一的。 身分證有三種類型。

最簡單的ID類型是從 的 ZoneOffset。 這包括「Z」和以「+」或「-」開頭的 ID。

第二類ID是帶有某種前綴的偏移式ID,例如「GMT+2」或「UTC+01:00」。 公認的前綴為「UTC」、「GMT」和「UT」。 偏移就是後綴,會在建立時被正規化。 這些 ID 可以正規化為 ZoneOffset 。normalized()

第三種身分證是基於地區的身分證。 區域識別碼必須為兩個或以上字元,且不得以「UTC」、「GMT」、「UT」、「+」或「-」開頭。 區域基礎的 ID 是由配置定義的。 該組態著重於從 ID 到 底層 ZoneRules的查詢。

時區規則由政府制定,且經常變動。 有多個組織,這裡稱為團體,負責監控時區變化並彙整資料。 預設群組為 IANA 時區資料庫(TZDB)。 其他組織包括航空業組織 IATA 及 Microsoft。

每個群組都為所提供的區域ID定義自己的格式。 TZDB 群組定義的識別碼為「歐洲/倫敦」或「美洲/New_York」。 TZDB ID 優先於其他群組。

強烈建議在所有非 TZDB 群組提供的 ID 中包含群組名稱,以避免衝突。 例如,IATA 航空公司的時區區域識別碼通常與三字母機場代碼相同。 然而,烏特勒支機場的代碼是「UTC」,這顯然是個衝突。 非 TZDB 群組的區域識別碼推薦格式為「group~region」。 因此,若定義IATA資料,烏特勒支機場將為「IATA~UTC」。

<h2>序列化</h2> 此類別可序列化,並以外部形式儲存字串區域 ID。 該 ZoneOffset 子類別使用專用格式,僅儲存來自UTC/格林威治的偏移量。

ZoneId A 可以在 Java 執行時進行反序列化,而 ID 未知。 例如,如果伺服器端的 Java 執行環境已更新為新的區域 ID,但客戶端的 Java 執行環境尚未更新。 在這種情況下,物件ZoneId會存在,並且可以用 、 getId、 equalshashCodetoStringgetDisplayName和 來查詢。normalized 然而,任何呼叫 都會getRules失敗。ZoneRulesException 此方法設計允許ZonedDateTime在時區資訊不完整的 Java 執行環境上載入並查詢,但不進行修改。

新增於1.8版本。

Java 文件 java.time.ZoneId。

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

建構函式

名稱 Description
ZoneId(IntPtr, JniHandleOwnership)

一個時區 ID,例如 Europe/Paris。

屬性

名稱 Description
AvailableZoneIds

取得可用的區域 ID 集合。

Class

回傳此 Object的執行時類別。

(繼承來源 Object)
Handle

底層 Android 實例的帳號。

(繼承來源 Object)
Id

取得獨特的時區ID。

JniIdentityHashCode

取得由互通執行時指派給此 Java 對等端的身份雜湊碼。

(繼承來源 Object)
JniManagedPeerState

一個時區 ID,例如 Europe/Paris。

(繼承來源 JavaObject)
JniPeerMembers

一個時區 ID,例如 Europe/Paris。

PeerReference

取得這個 Java 節點的 JNI 物件參考。

(繼承來源 Object)
Rules

取得此 ID 的時區規則,允許進行計算。

ShortIds

一個時區 ID,例如 Europe/Paris。

ThresholdClass

一個時區 ID,例如 Europe/Paris。

ThresholdType

一個時區 ID,例如 Europe/Paris。

方法

名稱 Description
Clone()

建立並回傳此物件的副本。

(繼承來源 Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

一個時區 ID,例如 Europe/Paris。

(繼承來源 JavaObject)
Dispose()

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
Dispose(Boolean)

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
DisposeUnlessReferenced()

一個時區 ID,例如 Europe/Paris。

(繼承來源 JavaObject)
Equals(Object)

一個時區 ID,例如 Europe/Paris。

(繼承來源 JavaObject)
Equals(Object)

表示是否有其他物體「等同」於此物。

(繼承來源 Object)
From(ITemporalAccessor)

從一個時間物件取得 ZoneId 實例。

GetDisplayName(TextStyle, Locale)

取得區域的文字表示,例如「英國時間」或「+02:00」。

GetHashCode()

回傳物件的雜湊碼值。

(繼承來源 Object)
JavaFinalize()
已淘汰.

當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。

(繼承來源 Object)
Normalized()

標準化時區 ID,並在可能的情況下回傳 ZoneOffset。

Notify()

喚醒一個正在該物件監視器上等待的執行緒。

(繼承來源 Object)
NotifyAll()

喚醒所有等待該物件監視器的執行緒。

(繼承來源 Object)
Of(String, IDictionary<String,String>)

利用別名映射來補充標準區域識別碼,取得 ZoneID 的實例。

Of(String)

從 ID 取得 ZoneId,確保該 ID 有效且可供使用。

OfOffset(String, ZoneOffset)

取得 ZoneId 包裹偏移量的實例。

SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

(繼承來源 Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

一個時區 ID,例如 Europe/Paris。

(繼承來源 JavaObject)
SystemDefault()

一個時區 ID,例如 Europe/Paris。

ToArray<T>()

從這個 Java 陣列包裝器建立一個受管理陣列。

(繼承來源 Object)
ToString()

回傳物件的字串表示。

(繼承來源 Object)
UnregisterFromRuntime()

將此 Java 節點從互通執行時中取消註冊。

(繼承來源 Object)
Wait()

導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。

(繼承來源 Object)
Wait(Int64, Int32)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)
Wait(Int64)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)

明確介面實作

名稱 Description
IJavaPeerable.Disposed()

一個時區 ID,例如 Europe/Paris。

(繼承來源 JavaObject)
IJavaPeerable.Finalized()

一個時區 ID,例如 Europe/Paris。

(繼承來源 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

一個時區 ID,例如 Europe/Paris。

(繼承來源 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

一個時區 ID,例如 Europe/Paris。

(繼承來源 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

一個時區 ID,例如 Europe/Paris。

(繼承來源 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

一個時區 ID,例如 Europe/Paris。

(繼承來源 JavaObject)
IJavaPeerable.UnregisterFromRuntime()

一個時區 ID,例如 Europe/Paris。

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

一個時區 ID,例如 Europe/Paris。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於