我在Spring Boot应用程序中格式化Java8 LocalDateTime时遇到了一个小问题。对于'normal‘日期,我没有问题,但是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;
}
但是上面的两个注解都不起作用,日期仍然像上面那样格式化。欢迎提出建议!
发布于 2016-01-27 15:20:47
我添加了com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.6.1
依赖项,并开始获取以下格式的日期:
"birthDate": [
2016,
1,
25,
21,
34,
55
]
这不是我想要的但我越来越接近了。然后我添加了以下内容
spring.jackson.serialization.write_dates_as_timestamps=false
转换成application.properties文件,它给了我所需的正确格式。
"birthDate": "2016-01-25T21:34:55"
发布于 2016-05-14 04:53:49
这是在maven中使用的属性,这样您就可以在spring boot升级之间存活下来。
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>${jackson.version}</version>
</dependency>
发布于 2017-06-05 20:27:20
1)依赖性
compile group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: '2.8.8'
2)日期-时间格式的注解。
public class RestObject {
private LocalDateTime timestamp;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
public LocalDateTime getTimestamp() {
return timestamp;
}
}
3) Spring Config。
@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;
}
}
https://stackoverflow.com/questions/29956175
复制相似问题