java MYSQL如何将日期和时间存储为UTC而不是EST?
在我的应用程序中,我有以下两列:
start - datetime
end - datetime
对应的java字段:
@JsonProperty
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "start")
private Calendar start;
@JsonProperty
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "end")
private Calendar end;
每当前端调用后端来持久化实体时,它总是保存为EST
时间
例如,如果时间以12pm
的形式发送,它将以8am.
的形式保存在数据库中
如何确保数据库中节省的时间始终在UTC
中
我尝试将start
列的类型更改为timestamp
,但这并没有解决问题
# 1 楼答案
时间戳数据类型存储在MySql中的UTC中。(日期时间数据类型不是。)
存储它们时,它们会从连接或服务器的时区设置转换为UTC。当你取回它们时,它们会被翻译回来
要做到这一点,您需要确保每个连接的时区设置正确。如果在打开连接时或在处理任何时间戳数据之前这样做,就可以实现这个目的
全球网络应用(例如WordPress)有一个用户时区偏好设置,因此每个用户都可以在自己的本地时间查看时间
如果要检索UTC时间,请先执行以下操作: