数据库入库时间相差13个小时问题排查与解决

Posted jiathis

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库入库时间相差13个小时问题排查与解决相关的知识,希望对你有一定的参考价值。

在测试时发现插入数据库后的时间值与预期存在偏差,比实际时间慢13个小时
排查步骤:
1.因为是是远程数据库,所以首先考虑是不是服务器时间设置存在问题
技术图片
和实际时间一致,该条排除
2.考虑是不是数据库时区设置问题
技术图片

和实际时间一致,该条排除
3.考虑Java代码在插入数据库之前对值做了改变
在步骤1查看服务器时间时,可以看到时间后面有个CST
技术图片
由上图可以知道美国中部时间和中国标准时间相差14个小时,非常接近相差的13个小时。因为当前是夏季,所以刚好是相差13个小时。
至此可以初步判断应该是Java将CST理解成了美国中部时间。
3.1 验证
在数据库连接代码中加入时区设置

jdbc:mysql://xxx.xxx.xxx.xxx/xx?serverTimezone=Hongkong

  

经过测试,发现问题得以解决。

 

以上是关于数据库入库时间相差13个小时问题排查与解决的主要内容,如果未能解决你的问题,请参考以下文章

mysql数据库时间相差13小时

Java事件与本地时间相差8小时解决

Java事件与本地时间相差8小时解决

java 取系统时间相差13个小时,之前出现过8小时的情况,copy注册表解决了,但这次怎么搞都不行

Java 时间不一致

logstash 7.x 中时间问题,@timestamp 与本地时间相差 8个小时