SpringBoot+MyBatis+Mysql 6.X 版本日期型数据获,时间错乱,jason序列化时间相差8小时问题

时间:2023-03-09 04:39:34
SpringBoot+MyBatis+Mysql 6.X 版本日期型数据获,时间错乱,jason序列化时间相差8小时问题

新项目是用的springboot+mybatis+mysql 6.0.6版本的驱动包来搭建的,在使用的过程中遇到以下2个问题

  1. 从mysql取的的数据日期时间,与真实的时间往后错乱了14个小时。

  2. springboot jason序例日期时发现与真实的时间向前推了8小时。

第一个问题:经过 查资料,发现是mysql 6.x以上版本的驱动包,连接字符串默认时区不是东八区导致,解决方案如下

  在连接字符串上加上serverTimezone=Asia/Shanghai  问题得到解决。

  经验证mysql 5.x的版本不存在的这个问题,所以遇到这个问题的朋友,可以选择用上面的主案解决,也可以用mysql 5.x的版本驱动包解决。

第二个问题: 经调试发现在序列化前日期型的值是正确的,所以找到问题出在了序列化这一层面,这个问题算是spring boot 框架本身整合时的兼容的小BUG吧,解决方案如下

在application.properties 配置文件里添序列化时区配置:spring.jackson.time-zone=GMT+8