【求助】使用ResponseEntity作为标准数据返回,返回的时间对不上。

ResponseEntity继承HttpEntity,HttpEntity有个private final HttpHeaders headers
HttpHeaders里面有一句

private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("EEE, dd MMM yyyy HH:mm:ss zzz", Locale.US).withZone(GMT);

即便没有设置Headers,但是ResponseEntity会自带一个Headers,我不知道时区对不上是不是因为这个原因?求大佬帮助。

我按网上教程进行如下配置,但是依旧无效
1、在启动类加上

@PostConstruct
void setDefaultTimezone() {
 TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai"));
} 

2、在application.properties加上

spring.jackson.time-zone=Asia/Shanghai 

3、在启动类 启动run方法里加上

public static void main(String[] args) {
   TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai"));
  SpringApplication.run(BaseMicroServiceApplication.class, args);
}

有空学习一下markdown的使用。
你的问题是,实体类中的Date字段序列化后的时间格式不对吗?你尝试在Date字段上添加json序列化框架提供的注解试试看。

抱歉,没有注意到支持markdown语法。
我试过了,并不行。
服务器时间和数据库时间都能对上,只有返回的Header对不上。

图片

上面那个是ResponseEntity自带的header,下面那个是我服务器用LocalDateTime.now()返回的。

header里面的 Date