ZonedDateTime 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
在 ISO-8601 日曆系統中,帶有時區的日期時間,例如 2007-12-03T10:15:30+01:00 Europe/Paris。
[Android.Runtime.Register("java/time/ZonedDateTime", ApiSince=26, DoNotGenerateAcw=true)]
public sealed class ZonedDateTime : Java.Lang.Object, IDisposable, Java.IO.ISerializable, Java.Time.Chrono.IChronoZonedDateTime
[<Android.Runtime.Register("java/time/ZonedDateTime", ApiSince=26, DoNotGenerateAcw=true)>]
type ZonedDateTime = class
inherit Object
interface ISerializable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface IChronoZonedDateTime
interface IComparable
interface ITemporal
interface ITemporalAccessor
- 繼承
- 屬性
- 實作
備註
在 ISO-8601 日曆系統中,帶有時區的日期時間,例如 2007-12-03T10:15:30+01:00 Europe/Paris。
ZonedDateTime 是帶有時區的日期時間的不可變表示。 此類別儲存所有日期與時間欄位,精確度為奈秒,並有一個時區,並以區域偏移處理模糊的本地日期時間。 例如,「2007年10月2日 13:45.30.123456789 +02:00 歐洲/巴黎時區」這個值可以儲存在一個 ZonedDateTime。
此類別處理從 的 LocalDateTime 局部時間軸轉換到 的 Instant即時時間軸。 兩條時間線的差異是從UTC/格林威治的偏移量,以一個 ZoneOffset表示。
在兩個時間軸間轉換時,需利用從 中取得ZoneRules rules的 計算ZoneId偏移量。 取得一個瞬間的偏移量很簡單,因為每個瞬間恰好有一個有效的偏移量。 相較之下,取得當地約會時間的抵銷並不容易。 有三種情況: <ul><li>normal,其中一種有效抵銷。 在一年中的絕大多數時間裡,適用正常情況,即當地日期時間有一個有效的偏移。</li><li Gap>,且無有效偏移量。 這通常是因為春季夏令時間從「冬季」轉為「夏季」而時鐘跳動。 在空隙中存在當地的日期-時間值,且沒有有效的偏移量。</li><li>重疊,有兩個有效偏移量。 這通常是因為秋季夏令時間從「夏季」改為「冬季」而將時鐘調回。 在重疊中,存在具有兩個有效偏移量的本地日期-時間值。</li></ul>
任何直接或隱式地將本地日期時間轉換為瞬間並取得偏移量的方法,都有可能變得複雜。
對於 Gap,一般策略是,如果當地日期時間落在 Gap 的中間,則所產生的分區日期時間會將當地日期時間往前移,時間會隨著 Gap 的長度往前移動,導致日期時間位於較晚的偏移,通常是「夏季」時間。
對於重疊,一般策略是若當地日期時間落在重疊的中間,則保留先前的偏移量。 如果之前沒有偏移,或之前的偏移無效,則會使用較早的偏移,通常是「夏季」時間。 另外兩種方法, #withEarlierOffsetAtOverlap() 以及 #withLaterOffsetAtOverlap(),有助於處理重疊的情況。
從設計角度來看,這個類別主要應該被視為 a LocalDateTime 與 ZoneIda 的結合。 這是一個 ZoneOffset 重要但次要的資訊,用來確保這堂課能代表瞬間,尤其是在夏令時間重疊期間。
新增於1.8版本。
的 java.time.ZonedDateTimeJava 檔。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。
屬性
| 名稱 | Description |
|---|---|
| Class |
傳回這個 |
| DayOfMonth |
會得到月份的日期欄位。 |
| DayOfWeek |
會得到星期幾欄位,這是一個星期幾的星期。 |
| DayOfYear |
會拿到年份欄位。 |
| Handle |
底層 Android 實例的帳號。 (繼承來源 Object) |
| Hour |
負責一天的時段。 |
| JniIdentityHashCode |
取得由互通執行時指派給此 Java 對等端的身份雜湊碼。 (繼承來源 Object) |
| JniManagedPeerState |
在 ISO-8601 日曆系統中,帶有時區的日期時間,例如 |
| JniPeerMembers |
在 ISO-8601 日曆系統中,帶有時區的日期時間,例如 |
| Minute |
他能進入每小時的場地。 |
| Month |
使用 Month enum 取得 month of year 欄位。 |
| MonthValue |
可以取得月份和年份欄位,範圍從1到12。 |
| Nano |
能得到秒奈米的場。 |
| Offset |
取得區域偏移,例如「+01:00」。 |
| PeerReference |
取得這個 Java 節點的 JNI 物件參考。 (繼承來源 Object) |
| Second |
獲得第二分鐘的場地。 |
| ThresholdClass |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 (繼承來源 Object) |
| ThresholdType |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 (繼承來源 Object) |
| Year |
會拿到年份欄位。 |
| Zone |
會拿到時區,例如「歐洲/巴黎」。 |
方法
| 名稱 | Description |
|---|---|
| Clone() |
建立並傳回這個 對象的複本。 (繼承來源 Object) |
| CompareTo(Object) |
在 ISO-8601 日曆系統中,帶有時區的日期時間,例如 |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
在 ISO-8601 日曆系統中,帶有時區的日期時間,例如 |
| Dispose() |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| Dispose(Boolean) |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| DisposeUnlessReferenced() |
在 ISO-8601 日曆系統中,帶有時區的日期時間,例如 |
| Equals(Object) |
在 ISO-8601 日曆系統中,帶有時區的日期時間,例如 |
| Equals(Object) |
指出其他物件是否「等於」這個物件。 (繼承來源 Object) |
| Format(DateTimeFormatter) |
使用指定的格式化器來格式化這個日期時間。 |
| From(ITemporalAccessor) |
從一個時間物件取得 ZonedDateTime 的實例。 |
| Get(ITemporalField) |
從此日期-時間取得指定欄位的值,作為整數值。 |
| GetHashCode() |
傳回此物件的雜湊碼值。 (繼承來源 Object) |
| GetLong(ITemporalField) |
從此日期時間取得指定欄位的值,作為長。 |
| IsSupported(ITemporalField) |
檢查指定欄位是否支援。 |
| IsSupported(ITemporalUnit) |
檢查指定單位是否支援。 |
| JavaFinalize() |
已淘汰.
當垃圾收集決定不再參考物件時,垃圾收集行程在 物件上呼叫。 (繼承來源 Object) |
| Minus(Int64, ITemporalUnit) |
回傳一份該日期時間的副本,並扣除指定金額。 |
| Minus(ITemporalAmount) |
回傳一份該日期時間的副本,並扣除指定金額。 |
| MinusDays(Int64) |
回傳一份 ZonedDateTime 的副本,並扣除指定的天數。 |
| MinusHours(Int64) |
回傳一份 ZonedDateTime 的副本,並扣除指定的工時數。 |
| MinusMinutes(Int64) |
回傳一份 ZonedDateTime 的副本,並扣除指定的分鐘數。 |
| MinusMonths(Int64) |
回傳一份 ZonedDateTime 的副本,並扣除指定的月份數。 |
| MinusNanos(Int64) |
回傳一份 ZonedDateTime 的副本,並扣除指定的奈秒數。 |
| MinusSeconds(Int64) |
回傳一份 ZonedDateTime 的副本,並扣除指定的秒數。 |
| MinusWeeks(Int64) |
回傳一份 ZonedDateTime 的副本,並扣除指定的週數。 |
| MinusYears(Int64) |
回傳一份已減去指定年數的 ZonedDateTime 副本。 |
| Notify() |
喚醒正在等候此物件監視器的單一線程。 (繼承來源 Object) |
| NotifyAll() |
喚醒正在等候此物件監視器的所有線程。 (繼承來源 Object) |
| Now() |
在 ISO-8601 日曆系統中,帶有時區的日期時間,例如 |
| Now(Clock) |
從指定的時鐘取得當前日期時間。 |
| Now(ZoneId) |
從指定時區的系統時鐘取得當前日期時間。 |
| Of(Int32, Int32, Int32, Int32, Int32, Int32, Int32, ZoneId) |
從年份、月份、日、小時、分鐘、秒、奈秒及時區取得 ZonedDateTime 的實例。 |
| Of(LocalDate, LocalTime, ZoneId) |
從當地日期和時間取得 ZonedDateTime 的實例。 |
| Of(LocalDateTime, ZoneId) |
從本地日期時間取得 ZonedDateTime 的實例。 |
| OfInstant(Instant, ZoneId) |
從瞬間取得 ZonedDateTime 的實例。 |
| OfInstant(LocalDateTime, ZoneOffset, ZoneId) |
從結合當地日期時間與偏移量形成的瞬間,取得 ZonedDateTime 的實例。 |
| OfLocal(LocalDateTime, ZoneId, ZoneOffset) |
盡可能從本地日期時間取得 ZonedDateTime 的實例,並使用偏好的偏移量。 |
| OfStrict(LocalDateTime, ZoneOffset, ZoneId) |
取得一個 ZonedDateTime 實例,嚴格驗證本地日期時間、偏移量與區域 ID 的組合。 |
| Parse(ICharSequence, DateTimeFormatter) |
使用特定格式化器從文字串取得 ZonedDateTime 的實例。 |
| Parse(ICharSequence) |
可從文字串(如 2007-12-03T10:15:30+01:00[Europe/Paris])取得 ZonedDateTime 實例。 |
| Parse(String, DateTimeFormatter) |
在 ISO-8601 日曆系統中,帶有時區的日期時間,例如 |
| Parse(String) |
在 ISO-8601 日曆系統中,帶有時區的日期時間,例如 |
| Plus(Int64, ITemporalUnit) |
回傳一份日期時間的副本,並加上指定的金額。 |
| Plus(ITemporalAmount) |
回傳一份日期時間的副本,並加上指定的金額。 |
| PlusDays(Int64) |
回傳一份包含指定天數的 ZonedDateTime 副本。 |
| PlusHours(Int64) |
回傳一份包含指定工時數的 ZonedDateTime 副本。 |
| PlusMinutes(Int64) |
回傳一份包含指定分鐘數的 ZonedDateTime 副本。 |
| PlusMonths(Int64) |
回傳一份包含指定月份數的 ZonedDateTime 副本。 |
| PlusNanos(Int64) |
回傳一份包含指定奈秒數的 ZonedDateTime 副本。 |
| PlusSeconds(Int64) |
回傳一份包含指定秒數的 ZonedDateTime 副本。 |
| PlusWeeks(Int64) |
回傳一份包含指定週數的 ZonedDateTime 副本。 |
| PlusYears(Int64) |
回傳一份包含指定年數的 ZonedDateTime 副本。 |
| Query(ITemporalQuery) |
在此日期點使用指定的查詢進行查詢。 |
| Range(ITemporalField) |
取得指定欄位的有效值範圍。 |
| SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
在 ISO-8601 日曆系統中,帶有時區的日期時間,例如 |
| ToArray<T>() |
從這個 Java 陣列包裝器建立一個受管理陣列。 (繼承來源 Object) |
| ToLocalDate() |
會收到這個約會時間裡的 LocalDate 部分。 |
| ToLocalDateTime() |
會取得這個日期時間的 LocalDateTime 部分。 |
| ToLocalTime() |
他會聽到這個日期時間的 LocalTime 部分。 |
| ToOffsetDateTime() |
將此日期時間轉換為 OffsetDateTime。 |
| ToString() |
傳回物件的字串表示。 (繼承來源 Object) |
| TruncatedTo(ITemporalUnit) |
回傳一份時間被截斷的 ZonedDateTime 副本。 |
| UnregisterFromRuntime() |
將此 Java 節點從互通執行時中取消註冊。 (繼承來源 Object) |
| Until(ITemporal, ITemporalUnit) |
以指定單位計算到下一個日期時間的時間。 |
| Wait() |
讓目前線程等候直到喚醒為止,通常是藉由em <notified/em>或<em>interrupted</em> 來喚醒它。<> (繼承來源 Object) |
| Wait(Int64, Int32) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
| Wait(Int64) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
| With(ITemporalAdjuster) |
回傳經過調整的日期副本。 |
| With(ITemporalField, Int64) |
回傳一份將指定欄位設定為新值的日期-時間副本。 |
| WithDayOfMonth(Int32) |
回傳一份ZonedDateTime的副本,但月份日期已更改。 |
| WithDayOfYear(Int32) |
回傳一份已更改年份日期的 ZonedDateTime 副本。 |
| WithEarlierOffsetAtOverlap() |
回傳此日期與時間的副本,將區域偏移量改為兩個有效偏移量中較早者,且在當地時間線重疊處。 |
| WithFixedOffsetZone() |
回傳一份將區域 ID 設為偏移的日期時間副本。 |
| WithHour(Int32) |
回傳一份ZonedDateTime的副本,並更改了整點。 |
| WithLaterOffsetAtOverlap() |
回傳一份日期時間的副本,將區域偏移量改為兩個有效偏移量中較晚的一個,且在當地時間線重疊。 |
| WithMinute(Int32) |
回傳一份ZonedDateTime的副本,並更改了整點的分鐘。 |
| WithMonth(Int32) |
回傳一份已更改年份月份的 ZonedDateTime 副本。 |
| WithNano(Int32) |
回傳一份ZonedDateTime的副本,並改變了每一秒的奈米。 |
| WithSecond(Int32) |
回傳一份ZonedDateTime的副本,並修改了秒一分鐘。 |
| WithYear(Int32) |
回傳一份已更改年份的 ZonedDateTime 副本。 |
| WithZoneSameInstant(ZoneId) |
回傳一份帶有不同時區的日期時間副本,但保留即時時間。 |
| WithZoneSameLocal(ZoneId) |
回傳該日期時間的副本,但時區不同,若可能仍保留當地日期時間。 |
明確介面實作
| 名稱 | Description |
|---|---|
| IChronoZonedDateTime.Plus(Int64, ITemporalUnit) |
在 ISO-8601 日曆系統中,帶有時區的日期時間,例如 |
| IChronoZonedDateTime.ToLocalDateTime() |
在 ISO-8601 日曆系統中,帶有時區的日期時間,例如 |
| IChronoZonedDateTime.With(ITemporalField, Int64) |
在 ISO-8601 日曆系統中,帶有時區的日期時間,例如 |
| IChronoZonedDateTime.WithEarlierOffsetAtOverlap() |
在 ISO-8601 日曆系統中,帶有時區的日期時間,例如 |
| IChronoZonedDateTime.WithLaterOffsetAtOverlap() |
在 ISO-8601 日曆系統中,帶有時區的日期時間,例如 |
| IChronoZonedDateTime.WithZoneSameInstant(ZoneId) |
在 ISO-8601 日曆系統中,帶有時區的日期時間,例如 |
| IChronoZonedDateTime.WithZoneSameLocal(ZoneId) |
在 ISO-8601 日曆系統中,帶有時區的日期時間,例如 |
| IJavaPeerable.Disposed() |
在 ISO-8601 日曆系統中,帶有時區的日期時間,例如 |
| IJavaPeerable.Finalized() |
在 ISO-8601 日曆系統中,帶有時區的日期時間,例如 |
| IJavaPeerable.JniObjectReferenceControlBlock |
在 ISO-8601 日曆系統中,帶有時區的日期時間,例如 |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
在 ISO-8601 日曆系統中,帶有時區的日期時間,例如 |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
在 ISO-8601 日曆系統中,帶有時區的日期時間,例如 |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
在 ISO-8601 日曆系統中,帶有時區的日期時間,例如 |
| IJavaPeerable.UnregisterFromRuntime() |
在 ISO-8601 日曆系統中,帶有時區的日期時間,例如 |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
在 ISO-8601 日曆系統中,帶有時區的日期時間,例如 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |