springboot mysql 相差13小时

Java评论952字数 420阅读模式

以前出现过时间差8小时的情况,是因为时区的问题,UTC代表的是全球标准时间 ,但是我们使用的是东八区时间,而这次却出现了相差13个小时的现象,同样也是因为时区的原因,解决方法是:连接数据库时url的时区使用中国标准时间。

springboot mysql 相差13小时

1.查看linux服务器的系统时间

date

Thu Jun 6 11:36:22 CST 2019

没问题

2.log查看 Java 调用 new Date()

时间没问题

3.查看数据库时间

show variables like '%time_zone%';
select now();
SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP);

时间没问题。

4.定位问题

java将正确的时间传给了数据库,存起来就变成了不一样的时间。
所以猜测是java连接数据库出了问题。

mysql-connector-java的8.0后的版本会影响读取到的时区值

5.解决方案

Java 连接数据库时指定时区。

&serverTimezone=Asia/Shanghai

本文已通过「原本」原创作品认证,转载请注明文章出处及链接。

Java最后更新:2022-11-7
夏日阳光
  • 本文由 夏日阳光 发表于 2019年7月19日
  • 本文为夏日阳光原创文章,转载请务必保留本文链接:https://www.pieruo.com/87.html
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定

拖动滑块以完成验证