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