springboot架构查询数据输出的时间与数据库中时间不一致问题(解决方式)

数据库中存储的时间和我查库数据返给值的时间不一致,例如差差八个小时差12个小时等等。

问题解决

1.看一下数据库时区

show variables like ‘%time_zone%’;
springboot架构查询数据输出的时间与数据库中时间不一致问题(解决方式)_第1张图片

2、本地的jdbc连接

# 示例,这里我是 GMT

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT

3、是否有jackson依赖、是否有@JsonFormat之类注解在属性上、是否存在全局配置如spring.jackson.time-zone=GMT+8

比对处理

jackson 全局配置同jdbc配置不一致

如果 spring.jackson.time-zone=GMT+8 、 serverTimezone=GMT 那么,最终返回结果会差8个小时。

jdbc 没有配置 serverTImezone

如果数据库时区为CST,则返回结果少8个小时。

最终解决

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF8&serverTimezone=Asia/Shanghai

在application.yml添加

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

你可能感兴趣的:(spring,boot,后端,java)