mysql数据库时区问题

遇到一个问题:项目jar包扫描后,升级了好多jar包,包括mysql的驱动jar包升级到了8.0版本以上。升级后从mysql中查出的时候,全都比数据库的时间多13小时,而且这些时间存到数据库的时间,有些是正确的时间,有时比正确时间少13小时,这样返回给前端的时间就不准确,解决这个问题只要在springboot的数据库连接配置中增加一段配置就能解决问题

spring:

   datasource:

      url:jdbc:mysql://localhost:3306/mydb3?serverTimezone=GMT%2B8&useSSL=false

 

这个时区要设置好,不然会出现时差,
如果你设置serverTimezone=UTC,连接不报错,
但是我们在用java代码插入到数据库时间的时候却出现了问题。
比如在java代码里面插入的时间为:2018-06-24 17:29:56
但是在数据库里面显示的时间却为:2018-06-24 09:29:56
有了8个小时的时差
UTC代表的是全球标准时间 ,但是我们使用的时间是北京时区也就是东八区,领先UTC八个小时。

//北京时间==东八区时间!=北京当地时间
serverTimezone=GMT%2B8
//或者使用上海时间
serverTimezone=Asia/Shanghai

我不确定为什么我的时间相差13小时,加上这段设置也能解决问题,应该是之前我既没有设置UTC,也没有设置东八区,使用默认的,也许就差了13小时

以上为百度得来

 

===================================

公司实操:

spring.datasource.druid.url=jdbc:mysql://服务器地址/数据库名?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true&failOverReadOnly=false&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true

posted on 2020-05-08 18:22  头发渐秃终不悔  阅读(573)  评论(0编辑  收藏  举报

导航