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