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
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐