一次关于解决从数据库中取出的时间和数据库存储的时间不一致的bug

bug现象如下:

数据库中存储的时间:
在这里插入图片描述
页面显示的获取时间:
在这里插入图片描述
这个显示时间比数据库存储的时间多了8小时,很明显是时区设置那里有问题。

于是我修改了数据库的时区设置,修改操作如下:

mysql> set global time_zone = '+8:00';

mysql> flush privileges;

mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone |        |
| time_zone        | +08:00 |
+------------------+--------+

但是依然没有解决问题。

不是数据库的问题,那就可能是连接数据库时设置的问题了。

我检查自己连接数据库的URL,当时我的项目里的配置文件写的是这样子的:

spring:
  datasource:
#    数据源基本配置
    username: root
    password: 123456
    url: jdbc:mysql://localhost:3306/seckill?serverTimezone=GMT
    driver-class-name: com.mysql.cj.jdbc.Driver

原来我这里连接设定的时区是格林尼治标准时间,与我所在的时区不同,所以我参照网上的资料,把GMT改成了GMT%2B8

url: jdbc:mysql://localhost:3306/seckill?serverTimezone=GMT%2B8

然后就把问题解决了,希望能帮到大家~

猜你喜欢

转载自blog.csdn.net/weixin_38418951/article/details/102704338