在以下情况中,哪个可用的java 8时间API类最适合JPA实体映射:
我见过的大多数示例都使用 LocalDateTime ,但是那个没有任何时区概念。由于我们所有的业务逻辑都应该用UTC进行计算,并且还要用UTC检索/存储数据,否则即时或 ZonedDateTime 会更合适?
在决定使用哪种类型进行JPA实体映射时(例如,无法为Instant添加一周),应该考虑哪些实际意义?
答案 0 :(得分:3)
Instant
是UTC,因此,如果您始终处理UTC,只要它具有您需要的所有操作就足够了。 LocalDateTime
是没有特定时区或区域偏移的时间戳,但如果您知道自己只处理UTC,则它对Instant
没有提供的操作非常有用。
可以携带明确区域偏移的最精确类型,允许您在UTC和其他时区之间来回转换时保留时刻OffsetDateTime
。有一个方便的ZoneOffset.UTC
常量可用于修复UTC的+0小时的偏移量。 ZonedDateTime
添加了TimeZone
的概念,它增加了对夏令时等内容的支持,这是您在处理UTC时通常不需要的概念,除非您想要显示当地时间具体的地区。