共计 1151 个字符,预计需要花费 3 分钟才能阅读完成。
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(报错)
正文完
发表至: java
2019-07-25