一尘不染

Spring Boot中的JSON Java 8 LocalDateTime格式

json

我在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;
}

但是以上任何一个注释均无法正常工作,日期的格式仍与上面一样。建议欢迎!


阅读 267

收藏
2020-07-27

共1个答案

一尘不染

更新 :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

仅在要更改日期格式的情况下才需要注释。

2020-07-27