2

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 日期对象,还是我应该手动设置日期对象上的所有变量?

我已经到处寻找,但没有运气!(抱歉,如果答案在某个地方,我似乎找不到它)

4

2 回答 2

1

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

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

于 2012-11-15T15:41:36.027 回答
0

json-lib项目主页上好像没有例子说明Date的过程,但是只要你搜索json-lib的API,你就会得到答案。

在这里,您可以使用下面的这种方法来处理java.util.Date类。您可以定义自己的格式模式并使用JsonConfig来注册用于处理Date类的自定义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);
}

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

可能会有所帮助。

于 2013-10-09T08:25:16.660 回答