1 在项目开发的工程中,有的实体bean 中,会包含java.util.Date这个类型的字段,在我们返回的json 集合中,如果包括这样的实体,时间类型的字段,默认是返回这样的格式,{"nanos":0,"time":-27076233600000,"minutes":0,"seconds":0,"hours":0,"month":11,"timezoneOffset":-480,"year":-789,"day":5,"date":22},如果返回这样的格式,非常晦涩难懂,怎么才能返回成指定的格式呢?下面将为大家一一说明
2 首先 我们新建一个,时间转化器工具类,时间转换器工具类的作用,将返回的json数据中的日期格式转换为指定格式。
3 新建一个时间转换器工具类 JsonDateValueProcessorUtil,代码如下。
public class JsonDateValueProcessorUtil implements JsonValueProcessor {
private String format ="yyyy-MM-dd HH:mm:ss";
public JsonDateValueProcessorUtil() {
super();
}
public JsonDateValueProcessorUtil(String format) {
super();
this.format = format;
}
@Override
public Object processArrayValue(Object paramObject,
JsonConfig paramJsonConfig) {
return process(paramObject);
}
@Override
public Object processObjectValue(String paramString, Object paramObject,
JsonConfig paramJsonConfig) {
return process(paramObject);
}
private Object process(Object value){
if(value instanceof Date){
SimpleDateFormat sdf = new SimpleDateFormat(format, Locale.CHINA);
return sdf.format(value);
}
return value == null ? "" : value.toString();
}
}
4 下面一段代码 将集合中的时间转化为指定的格式
dataMap = busAssignService.getBusAssignUnclaimedPage(userId, pageUtil);
List<Map<String ,Object>> list=dataMap.getDatas();//得到list集合数据
//处理时间
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonValueProcessor(Timestamp.class, new JsonDateValueProcessorUtil());
JSONArray array = JSONArray.fromObject(dataMap.getDatas(),jsonConfig);
这样返回的集合中,有关时间的格式,就转化为我们指定的格式 yyyy-MM-dd HH:mm:ss