首先确定数据库获取到的时间是不是对的
要是有错误则在数据库连接上加UTC
jdbc:mysql://192.168.0.31:3306/{dbName}?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowMultiQueries=true&serverTimezone=UTC
````
可以在启动类上加
@PostConstruct
void setDefaultTimezone() {
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
}
统一使用UTC时间存储
# 后台Date类型,前端显示时间少一天
//日期输出格式化
@JsonFormat(pattern = "yyyy-MM-dd")
private Date pURCHASE;
1. 可以简单直接的在后端把Date类型转成String,这是由于SpringBoot中对于@RestController或者@Controller+@ResponseBody注解接口默认返回的是Json数据,而SpringBoot默认的是Jackson框架转换,而Jackson默认的时间时区是GMT,对于中国时间少8个小时。
2. 在application.yml中添加 spring.jackson.time-zone=GMT+8
将Spring Boot返回的JSON数据中的Date类型自动转化为Long型时间戳
jackson:
serialization:
write-dates-as-timestamps: true