2017-09-01 64 views
1

我有一個場景,我需要存儲日期時間,其中有時區,而不是轉換爲本地時區。堅持在提供的時區使用Joda PersistentDateTime

例如,我在Europe/Berlin時區和America/New_York時區獲得日期。如果我的JVM在柏林,則America/New_York的日期時間正在轉換爲柏林時區。

我用彈簧註釋:

@Type(type = "org.jadira.usertype.dateandtime.joda.PersistentDateTime") 

我知道這個轉換提供datetime,在localdatetime堅持。但是如何避免這種情況,並將日期時間存儲在任何時區。有沒有其他類型的功能?

回答

0

你這裏有三個選項:

  • PersistentDateTimeAndZone - 將堅持你DateTime在兩個單獨的列 - 一個時間戳(本地時間帶這個日期的時區),另一個時區ID
  • PersistentDateTimeAndZoneWithOffset - 與上面相同,但時區列將保存時區偏移
  • PersistentDateTimeAsUtcString - 將會把一切都放在一列如下:

    堅持日期時間爲三個部分組成的字符串:

    • 日期時間轉化爲UTC時間,格式爲例如:yyyy-MM-dd'T'HH:mm:ss.SSS
    • 下劃線符號(_
    • 日期時間的原始時區的ID(例如Europe/LondonUTC