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