我在解析 json 日期时遇到了一点问题。
这是我要解析的内容:
{"driver": "247","firstName": "XXXXX","lastName": "XXXXX","lastLatitudeUpdate": "5/21/2012 4:49:17 PM","suspended": "false","checkedin": "0"}
我在解析“lastLatitudeUpdate”时遇到问题,是因为两者之间有空格吗?在此先感谢您的帮助。
简短回答:不,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)
这个函数会给出一个时间戳。但是,您必须确保正确识别字符串,您可能需要做一些额外的工作。
假设您使用的是 Android 并因此使用 java (是的,您没有提到这一点,只有您问题中的标签暗示了它......)
就像这里提到的(和其他地方)你可以使用SimpleDateFormat
类在java中解析一个日期:
SimpleDateFormat parserSDF=new SimpleDateFormat("M/d/yyyy h:m:s a");
Date d = parserSDF.parse(dateField,0);
当然,您必须首先使用一些库(例如来自json.org或Google gson的标准库)解析您的 json 输入,然后将您将获得的字段解析为日期。
你是如何解析日期的?在 Chrome 中,这似乎工作正常:
new Date("5/21/2012 4:49:17 PM");
Mon May 21 2012 16:49:17 GMT-0400 (US Eastern Daylight Time)