ZonedDateTime和OffsetDateTime都是Java 8 DateTime API中非常流行的類別;兩者都可以在時間線上儲存一個精確到奈秒的瞬間。那麼它們之間有什麼不同之處嗎?以下這篇文章就來帶了解ZonedDateTime和OffsetDateTime之間的差別,希望對大家有幫助。 【影片教學推薦:Java教學】
#什麼是ZonedDateTime?
ZonedDateTime是ISO-8601日曆系統(例:2007-12-03T10:15:30 01:00 Europe/Paris)中具有時區的日期時間的不可變表示。它持有相當於三個獨立物件的狀態:localdatetime、zoneid和已解析的zoneoffset。
在這裡,ZoneID決定偏移量的變化方式和時間。因此,不能自由設定偏移量,因為區域控制哪些偏移量是有效的。
要取得特定區域的目前ZonedDateTime,我們將使用:
ZoneId zone = ZoneId.of("Europe/Berlin"); ZonedDateTime zonedDateTime = ZonedDateTime.now(zone);
ZonedDateTime類別也提供了將給定日期從一個時區轉換為另一個時區的內建方法:
ZonedDateTime destZonedDateTime = sourceZonedDateTime.withZoneSameInstant(destZoneId);
最後,它完全了解DST並處理夏令時調整。當我們想要在特定時區中顯示日期時間欄位時,它通常很有用。
什麼是OffsetDateTime?
OffsetDateTime是日期時間的不可變表示,它與ISO-8601日曆系統(如2007-12-03T10:15:30 01:00)中的UTC/Greenwich時間存在偏移。換句話說,它存儲所有的日期和時間字段,精確到納秒,以及與GMT/UTC的偏移量。
讓我們從GMT / UTC 取得目前的 OffsetDateTime ,並偏離兩小時:
ZoneOffset zoneOffSet= ZoneOffset.of("+02:00"); OffsetDateTime offsetDateTime = OffsetDateTime.now(zoneOffSet);
ZonedDateTime和OffsetDateTime之間的差異
##ZonedDateTime和OffsetDateTime之間的差異
#ZonedDateTime:
● 儲存所有日期和時間字段,精確度為奈秒,時區,區域偏移用於處理模糊的本地日期時間# ● 無法自由設定偏移,因為區域控制有效的偏移值 ● 完全支援DST並處理夏令時調整● 在使用者特定的時區顯示日期時間欄位非常方便
OffsetDateTime:
● 儲存所有日期和時間字段,精確度為奈秒,以及與GMT / UTC的偏移量(無時區資訊) ● 應該用於在資料庫中儲存日期或透過網路進行通訊######以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。更多精彩內容大家可以追蹤php中文網相關教學欄位! ! ! ###以上是ZonedDateTime和OffsetDateTime之間的差異是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!