我已经配置了Spring Boot应用程序以将日期序列化为ISO8601字符串:
spring: jackson: serialization: write-dates-as-timestamps: false
这就是我得到的:
"someDate": "2017-09-11T07:53:27.000+0000"
但是我的时区是欧洲/马德里。实际上,如果我打印出来TimeZone.getDefault(),那是我所得到的。
TimeZone.getDefault()
如何让Jackson使用实际时区序列化这些日期时间值?GMT + 2
"someDate": "2017-09-11T09:53:27.000+0200"
解决了注册Jackson2ObjectMapperBuilderCustomizer bean的问题:
@Bean public Jackson2ObjectMapperBuilderCustomizer jacksonObjectMapperCustomization() { return jacksonObjectMapperBuilder -> jacksonObjectMapperBuilder.timeZone(TimeZone.getDefault()); }