最近在项目上遇到一个LocalDateTime的序列化与反序列化的问题,正常情况下只需要在返回前端的实体类加上以下标签即可以Json格式返回正常的时间类型:
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
如果不使用该标签,那么返回前端的时间就会显示的不正常,将会以实体类的形式来展示时间。
如果只使用以下格式:
@JsonSerialize(using = LocalDateTimeSerializer.class)
private LocalDateTime createTime;
则返回的数据类似于:[2020,5,16,0,0]。
所以一定要两个标签都加上,@JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”)是反序列特定的日期格式。
那么如果将时间进行反序列化之后还要数据显示正常,则需要再加上一个标签。
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
如果还是报错是String类型的数据的话,查看一下redisConfig配置文件中是否有下面的代码:
mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
mapper.registerModule(new JavaTimeModule());