一尘不染

如何使默认时区适用于Spring Boot Jackson Date序列化

spring-boot

我已经配置了Spring Boot应用程序以将日期序列化为ISO8601字符串:

spring:
  jackson:
    serialization:
      write-dates-as-timestamps: false

这就是我得到的:

"someDate": "2017-09-11T07:53:27.000+0000"

但是我的时区是欧洲/马德里。实际上,如果我打印出来TimeZone.getDefault(),那是我所得到的。

如何让Jackson使用实际时区序列化这些日期时间值?GMT + 2

"someDate": "2017-09-11T09:53:27.000+0200"

阅读 510

收藏
2020-05-30

共1个答案

一尘不染

解决了注册Jackson2ObjectMapperBuilderCustomizer bean的问题:

@Bean
public Jackson2ObjectMapperBuilderCustomizer jacksonObjectMapperCustomization() {
    return jacksonObjectMapperBuilder -> 
        jacksonObjectMapperBuilder.timeZone(TimeZone.getDefault());
}
2020-05-30