gpt4 book ai didi

java - 将 DateTimeFormatter 与 ObjectMapper 结合使用

转载 作者:行者123 更新时间:2023-12-01 13:39:51 28 4
gpt4 key购买 nike

在Java8之前,我们使用ObjectMapper来设置DateFormat如下

DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX");
ObjectMapper mapper = <SomeInstantiation>
mapper.setDateFormat(df);
mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);

现在我们有了 java.time.format.DateTimeFormatter,它与 SimpleDateFormat 不同,它是线程安全的并且更健壮。我想替换 ObjectMapper 上的上述设置。

如何使用 ObjectMapper 设置 DateTimeFormatter

最佳答案

您可以尝试以下操作:

DateTimeFormatter formatter = DateTimeFormatter.ISO_DATE_TIME;

LocalDateTimeDeserializer dateTimeDeserializer = new LocalDateTimeDeserializer(formatter);
LocalDateTimeSerializer dateTimeSerializer = new LocalDateTimeSerializer(formatter);

JavaTimeModule javaTimeModule = new JavaTimeModule();
javaTimeModule.addDeserializer(LocalDateTime.class, dateTimeDeserializer);
javaTimeModule.addSerializer(LocalDateTime.class, dateTimeSerializer);

ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(javaTimeModule);

jackson-datatype-jsr310 需要依赖:

<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>2.8.2</version>
</dependency>

关于java - 将 DateTimeFormatter 与 ObjectMapper 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39955104/

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