我知道有几个相同主题的问题,但是我认为它们在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.time.format.DateTimeFormatter
。您的情况:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");
并且您可以以与废弃的SimpleDateFormat
类相同的方式使用它。