ZoneId 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
一個時區 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版本。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
建構函式
| 名稱 | Description |
|---|---|
| ZoneId(IntPtr, JniHandleOwnership) |
一個時區 ID,例如 |
屬性
| 名稱 | Description |
|---|---|
| AvailableZoneIds |
取得可用的區域 ID 集合。 |
| Class |
回傳此 |
| Handle |
底層 Android 實例的帳號。 (繼承來源 Object) |
| Id |
取得獨特的時區ID。 |
| JniIdentityHashCode |
取得由互通執行時指派給此 Java 對等端的身份雜湊碼。 (繼承來源 Object) |
| JniManagedPeerState |
一個時區 ID,例如 |
| JniPeerMembers |
一個時區 ID,例如 |
| PeerReference |
取得這個 Java 節點的 JNI 物件參考。 (繼承來源 Object) |
| Rules |
取得此 ID 的時區規則,允許進行計算。 |
| ShortIds |
一個時區 ID,例如 |
| ThresholdClass |
一個時區 ID,例如 |
| ThresholdType |
一個時區 ID,例如 |
方法
| 名稱 | Description |
|---|---|
| Clone() |
建立並回傳此物件的副本。 (繼承來源 Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
一個時區 ID,例如 |
| Dispose() |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| Dispose(Boolean) |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| DisposeUnlessReferenced() |
一個時區 ID,例如 |
| Equals(Object) |
一個時區 ID,例如 |
| 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,例如 |
| SystemDefault() |
一個時區 ID,例如 |
| 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,例如 |
| IJavaPeerable.Finalized() |
一個時區 ID,例如 |
| IJavaPeerable.JniObjectReferenceControlBlock |
一個時區 ID,例如 |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
一個時區 ID,例如 |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
一個時區 ID,例如 |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
一個時區 ID,例如 |
| IJavaPeerable.UnregisterFromRuntime() |
一個時區 ID,例如 |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
一個時區 ID,例如 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |