如何使用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"/>

HUX布斯
TA贡献1876条经验 获得超6个赞
据我所知,您需要将整个Java应用程序放在UTC时区(以便Hibernate以UTC格式存储日期),并且您需要在显示内容时转换为所需的任何时区(至少我们这样做)这条路)。
在启动时,我们做:
TimeZone.setDefault(TimeZone.getTimeZone("Etc/UTC"));
并将所需的时区设置为DateFormat:
fmt.setTimeZone(TimeZone.getTimeZone("Europe/Budapest"))
添加回答
举报
0/150
提交
取消