您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關ZonedDateTime和OffsetDateTime之間的區別有哪些的內容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。
什么是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:
● 存儲所有日期和時間字段,精度為納秒,時區,區域偏移用于處理模糊的本地日期時間
● 無法自由設置偏移,因為區域控制有效的偏移值
● 完全支持DST并處理夏令時調整
● 在用戶特定的時區顯示日期時間字段非常方便
OffsetDateTime:
● 存儲所有日期和時間字段,精度為納秒,以及與GMT / UTC的偏移量(無時區信息)
● 應該用于在數據庫中存儲日期或通過網絡進行通信
感謝各位的閱讀!關于ZonedDateTime和OffsetDateTime之間的區別有哪些就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。