Spring Boot中的JSON Java 8 LocalDateTime格式

我在Spring Boot应用程序中格式化Java 8 LocalDateTime时遇到了一个小问题。 与“正常”date我没有问题,但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; } 

但是上面的注释中的任何一个都不起作用,date不断变得像上面那样格式化。 build议欢迎!

我终于在这里find了如何做到这一点。 为了解决这个问题,我需要另一个依赖:

 compile("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.4.0") 

通过包含这个依赖关系,Spring将自动注册一个转换器,如下所述。 之后,您需要将以下内容添加到application.properties中:

 spring.jackson.serialization.write_dates_as_timestamps=false 

这将确保使用正确的转换器,date将以2016-03-16T13:56:39.492的格式打印

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

我添加了com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.6.1依赖关系,我开始使用以下格式获取date:

 "birthDate": [ 2016, 1, 25, 21, 34, 55 ] 

这不是我想要的,但我越来越近了。 然后我添加以下内容

 spring.jackson.serialization.write_dates_as_timestamps=false 

到application.properties文件给了我正确的格式,我需要。

 "birthDate": "2016-01-25T21:34:55" 

这里是在maven,与财产,所以你可以在春季启动升级之间生存

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

1)依赖

  compile group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: '2.8.8' 

2)具有date时间格式的注释。

 public class RestObject { private LocalDateTime timestamp; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") public LocalDateTime getTimestamp() { return timestamp; } } 

3)springconfiguration。

 @Configuration public class JacksonConfig { @Bean @Primary public ObjectMapper objectMapper(Jackson2ObjectMapperBuilder builder) { System.out.println("Config is starting."); ObjectMapper objectMapper = builder.createXmlMapper(false).build(); objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); return objectMapper; } }