指点云用户90 发表于 2022-7-23 22:33:06

springboot Date类型返回到前端少一天问题

首先确定数据库获取到的时间是不是对的要是有错误则在数据库连接上加UTCjdbc: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;
[*]可以简单直接的在后端把Date类型转成String,这是由于SpringBoot中对于@RestController或者@Controller+@ResponseBody注解接口默认返回的是Json数据,而SpringBoot默认的是Jackson框架转换,而Jackson默认的时间时区是GMT,对于中国时间少8个小时。
[*]在application.yml中添加 spring.jackson.time-zone=GMT+8
将Spring Boot返回的JSON数据中的Date类型自动转化为Long型时间戳jackson:
    serialization:
      write-dates-as-timestamps: true

页: [1]
查看完整版本: springboot Date类型返回到前端少一天问题