我有一个场景,在我需要存储它的日期时间,而不是转换为本地时区。
例如,我在Europe/Berlin
时区和America/New_York
时区获得了日期。如果我的JVM在柏林,则America/New_York
的DateTime将转换为柏林时区。
我正在使用弹簧注释:
@Type(type = "org.jadira.usertype.dateandtime.joda.PersistentDateTime")
我知道这会将提供的日期时间转换为持续在LocalDateTime中。但是,如何避免这种情况并将日期时间存储在任何时区。还有其他类型可以吗?
您在这里有三个选项:
-
PersistentDateTimeAndZone
-将在两个单独的列中持续使用您的DateTime
-一个用于时间戳(本地为DateTime的时区的本地),一个用于时区ID -
PersistentDateTimeAndZoneWithOffset
-与上面相同,但是时区列将保持时区偏移 -
PersistentDateTimeAsUtcString
-将把所有内容都放在一列中,如下所示:将DateTime坚持为三个部分的字符串:
- DateTime转换为UTC时间,格式为:
yyyy-MM-dd'T'HH:mm:ss.SSS
- 下划线符号(
_
) - Datetime原始时区的ID(例如
Europe/London
或UTC
)
- DateTime转换为UTC时间,格式为: