一次关于解决从数据库中取出的时间和数据库存储的时间不一致的bug
bug现象如下:数据库中存储的时间:页面显示的获取时间:这个显示时间比数据库存储的时间多了8小时,很明显是时区设置那里有问题。于是我修改了数据库的时区设置,修改操作如下:mysql> set global time_zone = '+8:00';Query OK, 0 rows affected (0.00 sec)mysql> flush privileges;Q...
·
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
然后就把问题解决了,希望能帮到大家~
更多推荐
已为社区贡献1条内容
所有评论(0)