Spring Hibernate JPA Java8 OffsetTime

时间:2018-07-30 14:55:43

标签: spring hibernate jpa java-8 timezone-offset

我创建了一个具有OffsetTime列的休眠实体。在保存具有时间偏移量(例如(+05:00))的时间值时,它会丢弃时间偏移量,并根据系统时区保存具有时间偏移量的时间。这是我在实体中的专栏:

@Column(name = "start_time", nullable = false)
private OffsetTime startTime;

然后,如果我尝试保存“ 12:15 + 01:00”。如果我的计算机处于UTC时区,则保存“ 12:15 + 00:00”;如果我的计算机处于IST时区,则保存“ 12:15 + 05:00”。我希望它保存“ 12:15 + 01:00”,而与计算机的时区无关。

请提出我需要更正/审查的内容,以确保解决此问题。

谢谢。

1 个答案:

答案 0 :(得分:0)

问题是如何设置值。您没有显示设置方法。您可以从String解析它,也可以操作Temporal的某些实例,然后将其转换为OffsetTime,如果您不想使用默认值,则需要提供所需的偏移量一。假设您要使用给定的偏移量保存当前时间。因此,您将必须执行以下操作:

OffsetTime startTime = OffsetTime.of(LocalTime.now, ZoneOffset.of("+05:00");

请参见方法of()和其他OffsetTime方法