Java 全局配置Jackson以序列化日期';世界协调时
我有一个带API的Spring启动应用程序。一些端点返回的响应中包含从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
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引导属性似乎无法正常工作。