springboot2.0mysql时间相差8小时异常解决

编程

1. mysql Url链接: serverTimezone=Asia/Shanghai

spring:

# 配置mysql数据库

datasource:

driver-class-name: com.mysql.cj.jdbc.Driver

url: jdbc:mysql://127.0.0.1:3306/xxx?useUnicode=true&characterEncoding=UTF-8&useTimezone=true&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&verifyServerCertificate=false&useSSL=false

username: root

password: 123456

2. 响应bean @S

第一种, 全局设置

spring:

#时间响应格式体

jackson:

date-format: yyyy-MM-dd HH:mm:ss

time-zone: Asia/Shanghai

第二种,类注解设置

import com.fasterxml.jackson.annotation.JsonFormat;

@JsonFormat( pattern = "yyyy-MM-dd HH:mm:ss",timezone = "Asia/Shanghai" )

private Date startTime;

@JsonFormat( pattern = "yyyy-MM-dd HH:mm:ss" ,timezone = "Asia/Shanghai" )

private Date endTime;

 

综合原因

时区的不同,从而导致Mysql数据库中datetime类型的值查询后转到Java Bean,值多了8个小时。

发现是JVM的默认时区为:Asia/Shanghai,

其中:  GMT+08这个时区;

是2种定义标准。Asia/Shanghai 这个代表的是中国的时区,在历史中,有国家政策颁布了在1986-1991年等还存在夏令时,在这样的时间区间,我国夏季时,会将时间拨快1个小时(即东9区时间)。

 

更多服务器操作系统时区时间,请参考: https://blog.csdn.net/weixin_33736649/article/details/91964164

 

 

以上是 springboot2.0mysql时间相差8小时异常解决 的全部内容, 来源链接: utcz.com/z/511334.html

回到顶部