此项目是基于SpringBoot实现的,我的JavaBean中有两个Date属性,如下
private Date createTime;
private Date updateTime;
我通过crud(增删改查)操作返回的是毫秒级别的,但我前端只需要精确到秒级,常规方法是创建一个VO对象,把createTime和updateTime的类型改成Long或者Integer,然后把原来的Date类型转化成Long或者Integer,这种方法很繁琐,增加了很多代码,而且看起来很low,这里提出一个稍微高大上一点的方法:
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import java.io.IOException;
import java.util.Date;
public class Date2LongSerializer extends JsonSerializer<Date>{
@Override //重写下面的方法
public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
jsonGenerator.writeNumber(date.getTime() / 1000);
}
}
这里创建了一个Date2LongSerializer的类,然后在JavaBean中添加注解:
/**创建时间*/
@JsonSerialize(using = Date2LongSerializer.class)//本来是毫秒级的,转换成秒级
private Date createTime;
/**更新时间*/
@JsonSerialize(using = Date2LongSerializer.class)//本来是毫秒级的,转换成秒级
private Date updateTime;
这样你获取到的这两个字段就自动转化成秒级了,是不是很简单!!!