为什么JPA似乎提前12小时持久化java.util.Date()

为什么JPA似乎提前12小时持久化java.util.Date(),java,mysql,jpa,eclipselink,Java,Mysql,Jpa,Eclipselink,这个问题有几种不同的说法,但我正在努力寻找解决问题的方法 我有一个基于JPA、Eclipselink和MySQL的应用程序。在特定表中添加或更新记录时,使用new java.util.date()将“updated”日期字段设置为now 这是我的实体类上的字段: @Temporal(TemporalType.TIMESTAMP) @Column(name = "Updated", unique = false, nullable = true) private Date updated; 设置

这个问题有几种不同的说法,但我正在努力寻找解决问题的方法

我有一个基于JPA、Eclipselink和MySQL的应用程序。在特定表中添加或更新记录时,使用new java.util.date()将“updated”日期字段设置为now

这是我的实体类上的字段:

@Temporal(TemporalType.TIMESTAMP)
@Column(name = "Updated", unique = false, nullable = true)
private Date updated;
设置如下:

record.setUpdated(new Date());
出于某种原因,数据库中设置的日期似乎总是比现在提前12小时

我考虑过AM/PM转换、时区问题和检查服务器时间,但一切似乎都正常


抱歉,如果这是简单的,但我有点迷路了

检查服务器的jvm选项中是否设置了-Duser.timezone。如果设置了,则检查其值。

始终使用java.util.timezone.getDefault()返回的时区进行转换。。检查该值是否与您的其他设置相对应。感谢您的想法,但是没有设置时区。因此,我假设jvm占用本地系统区域?