现在很多人设计时存储日期都会用Long类型存储,但显示在前台时,需要返回日期字符串。 有些人会让前端帮忙处理,有些人会后端处理。 现在只说后端处理的情况,不需要每次都转换,通过注解实现快速转换。 1.实现转换
public class JSONDateSerial extends JsonSerializer<Long> {
public JSONDateSerial() {
}
public void serialize(Long aLong, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
jsonGenerator.writeString(df.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(aLong), ZoneId.of("Asia/Shanghai"))));
}
}
2.在VO的对象上,增加以下注解
/**
* 结束时间
*/
@JsonSerialize(using= JSONDateSerial.class)
private Long endDate;
这样,返回给前端时,系统会自动序列化long型为字符串