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

要是有错误则在数据库连接上加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 日 01 : 55 PM