Spring boot 统一时区

[toc]

8小时问题

现象

  • 插入数据库的时间和前端传入不一致
  • 数据库查询展示给前端的不一致

原因

  • 数据库时区、软件环境时区、mysql-connector-java时区、@RequestBody和@ResponseBody设置的time-zone

解决办法

  • 统一时区
  • 数据库时区
show variables like '%time_zone%';
查询结果为表示东八区(也就是咱们用的)
'time_zone','+08:00'
  • 软件环境时区
//linux
date -R
查询结果为表示东八区(也就是咱们用的)
Wed, 20 May 2020 21:50:23 +0800
  • mysql-connector-java连接设置
spring:
  #数据源
  datasource:
  #serverTimezone=Asia/Shanghai 设置东八区
    url: jdbc:mysql://ip:端口/db?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=Asia/Shanghai
  • 如果采用json前后端交互
序列化和反序列化的时候设置日期的处理
spring:
  jackson:
    time-zone: GMT+8

你可能感兴趣的:(Spring boot 统一时区)