把返回的json 集合中,有关时间类型的字段,转化为指定格式的的字段

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> 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

你可能感兴趣的:(utils,java)