gpt4 book ai didi

java - ZonedDateTime 在 Spring App 中作为大纪元时间而不是标准字符串返回

转载 作者:行者123 更新时间:2023-12-01 13:10:05 32 4
gpt4 key购买 nike

我正在尝试在我的 Spring 应用程序中获取一些存储在本地 MySQL 数据库中的 DateTime 值。这些日期被解析为 ZoneDateTime,然后作为 json 发送到客户端前端。我有一个指定此转换的对象映射器。

@Bean
public ObjectMapper objectMapper() {
JavaTimeModule javaTimeModule = new JavaTimeModule();
javaTimeModule.addSerializer(ZonedDateTime.class,
new ZonedDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX")));
return Jackson2ObjectMapperBuilder.json().featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS) // ISODate
.modules(javaTimeModule).build();
}

但是,在前端,我收到的值是大纪元时间,而不是 ObjectMapper 中指定的格式。我已经检查了解析为 ZoneDateTime 的值,它被正确解析了。我的猜测是在将 ZoneDateTime 对象映射到 json String 值的过程中存在一些错误。有什么办法可以解决这个问题?

最佳答案

以下是如何简单有效地做到这一点:

@JsonFormat(shape= JsonFormat.Shape.STRING, pattern="EEE MMM dd HH:mm:ss Z yyyy")
@JsonProperty("created_at")
ZonedDateTime created_at;

这是一个问题的引用:[ Jackson deserialize date from Twitter to `ZonedDateTime`另外,我认为您不需要为此添加特殊的序列化程序。没有这个定义它对我来说很好。

关于java - ZonedDateTime 在 Spring App 中作为大纪元时间而不是标准字符串返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59822664/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com