2015-02-13 17:16:00 +0000 的 NSDateFormatter

NSDateFormatter for 2015-02-13 17:16:00 +0000

NSString *value = [newProperties objectForKey:key]
NSLog(@"%@",value);
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd hh:mm:ss zzzz"];
NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
[dateFormatter setTimeZone:gmt];
NSDate *dateFromString = [dateFormatter dateFromString:value];

2015-02-13 17:16:00 +0000
但是我在最后一行崩溃了:

'-[__NSTaggedDate length]: unrecognized selector sent to instance 0xe41ba8e68d000000'

错误清楚地表明 value 已经是 NSDate,而不是 NSString

你所有的代码都可以用一行来代替:

NSDate *value = [newProperties objectForKey:key];

您可以通过记录 class:

来验证 value 是一个日期
NSLog(@"value class = %@", [value class]);

作为旁注。如果您确实有所示格式的日期字符串,则您的格式说明符需要为 yyyy-MM-dd HH:mm:ss Z.