LocalDateTime的时间操作比Date操作方便的多
@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
private Date birthDay; //如果使用Date这种时间类型加上@JsonFormat这个注解就可以了
//@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
private LocalDateTime sendDate;
1.Date:@JsonFormat这个注解是双向的,前端传的birthDay必须是和pattern相匹配的字符串,如1999-01-02 11:22:40,还可以传1999-1-2 11:22:40
2.LocalDateTime:使用这个注解不行,必须进行配置:
1.加入一个bean,使用了LocalDateTime的字段都会遵循这个规则进行序列化和反序列化
@Bean
public ObjectMapper serializingObjectMapper() {
JavaTimeModule module = new JavaTimeModule();
LocalDateTimeDeserializer localDateTimeDeserializer = new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
module.addDeserializer(LocalDateTime.class, localDateTimeDeserializer);
ObjectMapper objectMapper = Jackson2ObjectMapperBuilder.json()
.modules(module)
.featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
.build();
return objectMapper;
}
2.加入依赖
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>2.9.8</version>
</dependency>
</dependencies>
注意!使用LocalDateTime的字段,前端传过来进行匹配时必须按照规则完全匹配, 如1999-01-02 11:22:40(可以),1999-1-2 11:22:40(报错)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。