页面显示和数据库存储的时间不一致问题

1、项目使用的框架

SpringBoot + Mybatis Plus

2、问题:

通过查询后,发现页面的创建时间和数据库存储的时间不一样,中间相差 14 个小时。
讲过排查发现后发现是 jvm 时区和数据库时区设置不一致导致的原因。
jvm 设置的是 GMT+8,数据库是 CST 时区。CST 时区比较混乱,会在冬令时或夏令时导致相差 13 或 14 个小时,所以需要改成自己需要的。

3、解决

1、jvm 系统时区设置,在 application.yml 配置文件中

spring:
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8

2、查看数据库时区

 mysql> show variables like '%time_zone%';

我的是CST
time_zone 是 SYSTEM

3、修改my.cnf实现永久修改

vi /etc/mysql/my.cnf

================================
然后在代码中加入
default-time_zone = '+8:00'

4、重启 mysql

service mysql restart

猜你喜欢

转载自blog.csdn.net/weixin_38746118/article/details/111592586