为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

婷婷同学_ 2019-08-06 15:43:33
如何使用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。
查看完整描述

3 回答

?
潇湘沐

TA贡献1816条经验 获得超6个赞

使用Hibernate 5.2,您现在可以使用以下配置属性强制使用UTC时区:

<property name="hibernate.jdbc.time_zone" value="UTC"/>


查看完整回答
反对 回复 2019-08-06
?
HUX布斯

TA贡献1876条经验 获得超6个赞

据我所知,您需要将整个Java应用程序放在UTC时区(以便Hibernate以UTC格式存储日期),并且您需要在显示内容时转换为所需的任何时区(至少我们这样做)这条路)。

在启动时,我们做:

TimeZone.setDefault(TimeZone.getTimeZone("Etc/UTC"));

并将所需的时区设置为DateFormat:

fmt.setTimeZone(TimeZone.getTimeZone("Europe/Budapest"))


查看完整回答
反对 回复 2019-08-06
  • 3 回答
  • 0 关注
  • 1787 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号