如何使用JPA和Hibernate以UTC时区存储日期/时间和时间戳

如何使用JPA和Hibernate以UTC时区存储日期/时间和时间戳

如何配置JPA / Hibernate将数据库中的日期/时间存储为UTC(GMT)时区?考虑这个带注释的JPA实体:

public class Event {
    @Id
    public int id;

    @Temporal(TemporalType.TIMESTAMP)
    public java.util.Date date;}

如果日期是太平洋标准时间(PST)的2008年2月3日上午9:30,那么我希望将数据库中存储的2008年2月3日下午5:30的UTC时间。同样,当从数据库中检索日期时,我希望它被解释为UTC。所以在这种情况下530pm是在UTC时间下午5点。当它显示时,它将被格式化为太平洋标准时间上午9:30。


婷婷同学_
浏览 1788回答 3
3回答

潇湘沐

使用Hibernate 5.2,您现在可以使用以下配置属性强制使用UTC时区:<property name="hibernate.jdbc.time_zone" value="UTC"/>

HUX布斯

据我所知,您需要将整个Java应用程序放在UTC时区(以便Hibernate以UTC格式存储日期),并且您需要在显示内容时转换为所需的任何时区(至少我们这样做)这条路)。在启动时,我们做:TimeZone.setDefault(TimeZone.getTimeZone("Etc/UTC"));并将所需的时区设置为DateFormat:fmt.setTimeZone(TimeZone.getTimeZone("Europe/Budapest"))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java