七叶笔记 » Java » 连接数据库 mysql serverTimezone 问题,时间少了8小时

连接数据库 mysql serverTimezone 问题,时间少了8小时

如果你发现时间正好少了8小时,不用问,肯定是时区设置有问题,找找在哪里设置下时区就好了。


遇到一个问题:项目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小时


相关文章