Jackson-LocalDateTime格式

问题描述 投票:0回答:1

我知道有几个相同主题的问题,但是我认为它们在Spring Boot 2应用程序中不能完全解决我的问题。

我有一个使用LocalTimeDate的模型。通过rest api获取此文件效果很好,日期的格式为“日期”:“ 2019-12-17T08:50:00”

我创建了序列化程序,以便对json输出进行自定义,因为有些参考字段我不想扩展。

自定义序列化程序中的相关代码是

jgen.writeStringField("date", formatter.format(value.date));

格式化程序为

private SimpleDateFormat formatter  = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");

我使用自定义serialzer类将@JsonSerialize应用于模型类。结果是

{“ timestamp”:“ 2019-12-25T10:57:50.482 + 0000”,“状态”:500,“错误”:“内部服务器错误“,”消息“:”无法编写JSON:无法设置格式对象作为日期;嵌套异常为com.fasterxml.jackson.databind.JsonMappingException:无法格式化给定的对象作为日期(通过引用链:java.util.ArrayList [0])“,”路径“:” / api / v1 / climates“}

我已经使用https://codeboje.de/jackson-java-8-datetime-handling/作为指南,因此更新了pom和application.properties,然后让Spring发挥了魔力。

我错过了什么吗?

java-8 jackson datetime-format iso8601 jsondate
1个回答
0
投票

您需要使用java.time.format.DateTimeFormatter。您的情况:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");

并且您可以以与废弃的SimpleDateFormat类相同的方式使用它。

© www.soinside.com 2019 - 2024. All rights reserved.