我在我的 Spring Boot 应用程序中格式化 Java 8 LocalDateTime 时遇到了一个小问题。使用“正常”日期我没有问题,但 LocalDateTime 字段将转换为以下内容:
"startDate" : {
"year" : 2010,
"month" : "JANUARY",
"dayOfMonth" : 1,
"dayOfWeek" : "FRIDAY",
"dayOfYear" : 1,
"monthValue" : 1,
"hour" : 2,
"minute" : 2,
"second" : 0,
"nano" : 0,
"chronology" : {
"id" : "ISO",
"calendarType" : "iso8601"
}
}
虽然我想把它转换成类似的东西:
"startDate": "2015-01-01"
我的代码如下所示:
@JsonFormat(pattern="yyyy-MM-dd")
@DateTimeFormat(iso = DateTimeFormat.ISO.TIME)
public LocalDateTime getStartDate() {
return startDate;
}
但是上述任何一个注释都不起作用,日期的格式一直像上面那样。欢迎提出建议!
原文由 Erik Pragt 发布,翻译遵循 CC BY-SA 4.0 许可协议
更新:Spring Boot 2.x 不再需要此配置。我在 这里写了一个更新的答案。
(这是在 Spring Boot 2.x 之前的做法,它可能对使用旧版本 Spring Boot 的人有用)
我终于在 这里 找到了如何去做。要修复它,我需要另一个依赖项:
通过包含此依赖项,Spring 将自动为其注册一个转换器,如此 处 所述。之后,您需要将以下内容添加到 application.properties:
这将确保使用正确的转换器,并且日期将以
2016-03-16T13:56:39.492
的格式打印只有在您想更改日期格式时才需要注释。