"JSON Java 8 LocalDateTime format in Spring Boot" 直译为“在Spring Boot中使用JSON Java 8 LocalDateTime格式”。
"JSON Java 8 LocalDateTime format in Spring Boot" 直译为“在Spring Boot中使用JSON Java 8 LocalDateTime格式”。
我在我的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; }
但是以上任何一种注释都不起作用,日期仍然按照上面的格式进行格式化。欢迎提供建议!
admin 更改状态以发布 2023年5月24日
更新: Spring Boot 2.x 不需要这个配置了。我在这里写了一个更加实时的答案。
(这是在Spring Boot 2.x之前的做法,可能会对在旧版本的Spring Boot上工作的人有用)
我最终在这里找到了如何解决的方法。为了解决它,我需要另一个依赖项:
compile("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.4.0")
通过包含此依赖项,Spring将自动为其注册转换器,如此处所述。之后,您需要在application.properties中添加以下代码:
spring.jackson.serialization.write_dates_as_timestamps=false
这将确保使用正确的转换器,并以2016-03-16T13:56:39.492
的格式打印日期。
只有在您想要更改日期格式的情况下才需要注释。