使NSDateFormatter解析ISO日期

时间:2013-05-22 02:46:00

标签: iphone objective-c cocoa-touch nsdate nsdateformatter

我有一个简单的问题,但它让我疯了。我正在使用API​​,我得到一个JSon对象,其中一个字段是日期。日期格式如下:2013-05-17T02:00:00.000Z。我似乎无法让NSDateformatter在这个日期正确。有人愿意帮我一把吗?

如果不清楚,我将使用Objective c作为iPhone应用程序。我的目标是在此结束时获取NSDate对象。再次感谢你的帮助。

2 个答案:

答案 0 :(得分:2)

这是ISO 8601格式之一。使用NSDateFormatter解析它可能会很棘手,这就是我写an NSFormatter subclass specifically for parsing and unparsing any ISO 8601 format的原因。

答案 1 :(得分:1)

您需要获得该字符串的正确格式。 然后你应该能够做类似的事情:

NSString * dateString = jsonDict[@"dateKey"];
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"]
NSDate *date = [df dateFromString:dateString];

T在那里将日期与时间分开,Z指定祖鲁时间。 (https://stackoverflow.com/a/8405125/1074558