同步数据的时候,以为日期类型完全不用动,直接同步就行,结果测试人员说两个日期不一致,同步过来的日期比原mysql数据库的日期晚了13个小时,想到可能是时区的原因导致的。
在mysql数据库中用命令:show variables like '%time_zone%'
查到的结果是:
system_time_zone CST
time_zone SYSTEM
去百度查询:
CST可以为如下4个不同的时区的缩写:
美国中部时间:Central Standard Time (USA) UT-6:00
澳大利亚中部时间:Central Standard Time (Australia) UT+9:30
中国标准时间:China Standard Time UT+8:00
古巴标准时间:Cuba Standard Time UT-4:00
可以看出,美国中部时间和中国标准时间差14个小时,跟13很接近,又查资料得到美国夏季的时间是-5,因此很有可能是因为同步数据的时候采用了美国的时区,导致时间差13个小时。
解决办法:
同步时在数据库连接后加:&serverTimezone=Asia/Shanghai
jdbc:mysql://${mysql.address}:3306/${dbname}?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
指定mysql的时区为中国的时区,获取到的日期当然就没问题了
版权声明:本文为weixin_47396271原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。