如何将JSON lib格式的JSON日期转换为Javascript日期

时间:2012-11-15 15:39:32

标签: javascript json

Sourceforges JSON-lib(http://json-lib.sourceforge.net)生成这样的JSON日期格式:

{
    "date":10,
    "day":5,
    "hours":0,
    "minutes":0,
    "month":5,
    "nanos":0,
    "seconds":0,
    "time":1307660400000,
    "timezoneOffset":-60,
    "year":111 //this is 2011
}

有没有一种简单的方法可以将其转换为Javascript日期对象,还是应该通过手动设置日期对象上的所有变量?

我搜遍了所有这一切,没有运气! (如果答案是在某个地方,我似乎无法找到它而道歉)

2 个答案:

答案 0 :(得分:1)

看起来时间是以毫秒为单位的纪元,所以你可以这样做:new Date(object['time'])

您当然需要首先将其解析为对象。

答案 1 :(得分:0)

似乎在json-lib project home页面中,没有示例解释日期的过程。但是只要您搜索json-lib的API,您最终会得到答案

您可以在此处使用此方法来处理 java.util.Date 类。您可以定义自己的格式模式,并使用 JsonConfig 注册用于处理日期类的自定义 JsonValueProcessor

public static final JSON serializerObjWithFormatDate(Object javaObj){

    String pattern = "yyyy-MM-dd HH:mm:ss";

    final SimpleDateFormat fm =  new SimpleDateFormat(pattern);

    JsonConfig jsonCfg = new JsonConfig();

    jsonCfg.registerJsonValueProcessor(Date.class, new JsonValueProcessor() {

        @Override
        public Object processObjectValue(String key, Object value, JsonConfig cfg) {
            if (value == null) {  
                  return "";  
            } else {  
                  return fm.format((Date)value);
            }

        }

        @Override
        public Object processArrayValue(Object date, JsonConfig arg1) {
             return fm.format((Date)date);  
        }
    });

    return JSONSerializer.toJSON(javaObj ,jsonCfg);
}

param javaObj 是具有 Date 类实例的java对象。

愿它有用。