JSON解析日期和时间?

时间:2012-05-22 16:32:35

标签: java android json parsing

我在解析json日期方面遇到了一些问题。

以下是我要解析的内容:

 {"driver": "247","firstName": "XXXXX","lastName": "XXXXX","lastLatitudeUpdate": "5/21/2012     4:49:17 PM","suspended": "false","checkedin": "0"}

我无法解析“lastLatitudeUpdate”,因为它们之间有空格?在此先感谢您的帮助。

4 个答案:

答案 0 :(得分:1)

简短回答:不,JSON引擎无法将字符串识别为Date对象。

答案很长: JSON中没有“日期”类型。但是,这个JSON很好,问题是lastLatitudeUpdate将被解析为一个字符串。要将此转换为日期,您应该尝试类似

的内容
var my_object= JSON.parse({"driver": "247","firstName": "XXXXX","lastName": "XXXXX","lastLatitudeUpdate": "5/21/2012     4:49:17 PM","suspended": "false","checkedin": "0"});
my_object.lastLatitudeUpdate= Date.parse(my_object.lastLatitudeUpdate)

此函数将给出时间戳。但是,您必须确保正确识别字符串,您可能需要做一些额外的工作。

答案 1 :(得分:1)

假设您使用Android并因此使用java(是的,您没有提及,只有您问题中的标记表明它...)

与提到的here(以及其他各种地方)一样,您可以使用SimpleDateFormat类在Java中解析日期:

SimpleDateFormat parserSDF=new SimpleDateFormat("M/d/yyyy h:m:s a");
Date d = parserSDF.parse(dateField,0);

当然,您必须首先用一些库(例如来自json.orgGoogle gson的标准库)解析json输入,然后将字段中的字符串解析为日期。

答案 2 :(得分:0)

答案 3 :(得分:-2)

你是如何解析日期的?在Chrome中,这似乎工作正常:

new Date("5/21/2012     4:49:17 PM");
Mon May 21 2012 16:49:17 GMT-0400 (US Eastern Daylight Time)