首先确定数据库获取到的时间是不是对的

要是有错误则在数据库连接上加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
最后修改:2021 年 03 月 20 日
如果觉得我的文章对你有用,请随意赞赏