NSDateFormatter没有格式化(返回nil)

时间:2012-04-10 00:00:52

标签: objective-c ios cocoa-touch nsdateformatter

我有一个日期字符串,例如:

2012-04-09T23:57:44.070Z

我的日期格式为:

[dateFormatter setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'"];

但是它回来了。我的日期格式有什么问题? 感谢

1 个答案:

答案 0 :(得分:5)

您无需过于谨慎地转义-:。此外,你的秒字符是错误的。你应该使用:

NSDateFormatter *f = [[NSDateFormatter alloc] init];
[f setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
[f setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"];

NSLog(@"%@", [f dateFromString:@"2012-04-09T23:57:44.070Z"]);

此日志:

2012-04-09 23:57:44 +0000

如果您没有在日期格式化程序上设置时区,那么它将假设您指的是设备现在处于的任何时区,而不是 GMT时区(这就是{ {1}}暗示)。