0

我在解析 json 日期时遇到了一点问题。

这是我要解析的内容:

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

我在解析“lastLatitudeUpdate”时遇到问题,是因为两者之间有空格吗?在此先感谢您的帮助。

4

4 回答 4

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)

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

于 2012-05-22T16:44:30.430 回答
1

假设您使用的是 Android 并因此使用 java (是的,您没有提到这一点,只有您问题中的标签暗示了它......)

就像这里提到的(和其他地方)你可以使用SimpleDateFormat类在java中解析一个日期:

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

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

于 2012-05-22T16:44:58.183 回答
-2

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

new Date("5/21/2012     4:49:17 PM");
Mon May 21 2012 16:49:17 GMT-0400 (US Eastern Daylight Time)
于 2012-05-22T16:37:15.690 回答