如何在 Spring Boot Jackson 日期序列化中应用默认时区

新手上路,请多包涵

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

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

这就是我得到的:

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

但是我的时区是欧洲/马德里。事实上,如果我打印 TimeZone.getDefault() 这就是我得到的。

如何让杰克逊使用实际时区序列化这些日期时间值?格林威治标准时间+2

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

原文由 codependent 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 915
1 个回答

解决了注册 Jackson2ObjectMapperBuilderCustomizer bean 的问题:

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

原文由 codependent 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题