Java 全局配置Jackson以序列化日期';世界协调时

Java 全局配置Jackson以序列化日期';世界协调时,java,spring,spring-boot,jackson,Java,Spring,Spring Boot,Jackson,我有一个带API的Spring启动应用程序。一些端点返回的响应中包含从OffsetDateTime序列化的数据。其中一些日期来自数据库,另一些日期是在运行时生成的(OffsetDateTime.now()),这导致OffsetDateTime具有不同的时区。我希望继续在API上使用OffsetDateTime来响应时区,但我希望从API序列化的所有日期都在同一时区——在我的例子中是UTC。如何全局配置Jackson以实现此目的?Spring Boot属性: spring.jpa.properti

我有一个带API的Spring启动应用程序。一些端点返回的响应中包含从
OffsetDateTime
序列化的数据。其中一些日期来自数据库,另一些日期是在运行时生成的(
OffsetDateTime.now()
),这导致
OffsetDateTime
具有不同的时区。我希望继续在API上使用
OffsetDateTime
来响应时区,但我希望从API序列化的所有日期都在同一时区——在我的例子中是UTC。如何全局配置Jackson以实现此目的?

Spring Boot属性:

spring.jpa.properties.hibernate.jdbc.time_zone=UTC
spring.jackson.time-zone=UTC
JVM默认时区:

@PostConstruct
void started() {
  TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
}

您正在使用哪个数据库?通常如何序列化
OffsetDateTime
字段?您使用的是
@JsonFormat
?@Andreas我尝试过使用
@JsonFormat(timezone=“UTC”)
,但不起作用
设置默认值
使我的OffsetDateTime使用
OffsetDateTime.now()
在UTC中创建,这使它们在使用Jackson序列化时成为UTC。这很好,但如果我在另一个时区创建了OffsetDateTime,它仍然会在该时区返回。Spring引导属性似乎无法正常工作。