现象描述
在部署以前服务时,组里小同学发现java Date的时间和存储后结果不正确,相差12个小时。

第二列为存储到mysqll时间数据,第四列为对应真实时间。
分析现象
遇到此问题,可能肯定是时区问题。
中国与美国时差在夏令时为13个小时,非夏令时为12个小时。
查看mysql时区,为美国中部时区
show variables like '%time_zone%';

解决问题
方案一:
java 端jdbc连接串加入&serverTimezone=Asia/Shanghai
方案二:
在配置文件中加入相关配置;
编辑 /etc/my.cnf
[mysqld]
default-time-zone = '+8:00' #设置默认时区
方案三:
临时生效,重启无效。
set GLOBAL time_zone = '+8:00';
set time_zone = '+8:00';
FLUSH privileges;
show variables like '%time_zone%';

1965

被折叠的 条评论
为什么被折叠?



