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

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

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

这就是我得到的:

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

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

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

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

最佳答案

解决了注册 Jackson2ObjectMapperBuilderCustomizer bean:

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

https://stackoverflow.com/questions/46151633/

相关文章:

spring - 使用 Java 注释使用 Spring 发送电子邮件

java - spring 是否有一个关闭过程来放置清理代码?

spring - 为所有 Spring Boot 执行器端点添加前缀

java - Maven:没有要编译的资源

spring - 禁用 Spring 日志,以获得可读日志

java - Maven BOM [Bill Of Materials] 依赖

java - Spring MVC 缺少 URI 模板变量

java - Spring security - 禁用注销重定向

java - Spring RestTemplate 发布响应

java - 无法实例化 Pageable bean