SpringMVC 返回Json时的日期格式

309 阅读1分钟

引言

在开发中我们经常需要通过RestController返回Json数据,其中日期的格式如果不设置可能会是下面这种形式(JavaBean中的类型是LocalDateTime)。这不是我们想要的。在Spring boot中貌似不会有这样的问题,因为它帮我们配置好了。

"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"
    }
  }

SpringMVC中手动配置,这时需要添加一个依赖。

<dependency>
   <groupId>com.fasterxml.jackson.datatype</groupId>
   <artifactId>jackson-datatype-jsr310</artifactId>
   <version>${com.fasterxml.jackson.version}</version>
</dependency>

于是我们发现,日期变成下面这样了。我们想要的是yyyy-MM-dd HH:mm:ss,这样比刚才接近了,但还不够。

{"value":"Hello World","now":[2017,2,3,0,8,13,645000000]}

自由设置格式

最后,我们可以在java bean中添加@JsonFormat自由的设置格式。

 @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
 private LocalDateTime updts;

总结

经过以上两步设置,日期终于变成了想要的格式。

"updts":"2019-11-14 17:43:33"