在Apple Docs中,他们说NSDateFormatter使用Unicode作为规范。我已经阅读了规范,但是我在解释这个日期时遇到了麻烦:
NSDateFormatter *frm = [[NSDateFormatter alloc] init];
[frm setDateFormat:@"EEE MMM dd HH:mm:ss ZZZ yyyy"];
NSLog(@"Tue Oct 13 09:24:15 +0000 2009 becomes %@", [frm dateFromString:@"Tue Oct 13 09:24:15 +0000 2009"]);
此代码打印出来:
2009-10-13 11:37:40.334 test2[1704:20b] Tue Oct 13 09:24:15 +0000 2009 becomes (null)
答案 0 :(得分:2)
对不起,伙计们已经知道了。 NSDateFormatter默认使用当前系统区域设置。在上面的代码示例中,只有在将系统区域设置设置为美国以外的其他设置时才会失败。要修复它,就在将区域设置设置为日期字符串使用的区域设置之前,如下所示:
[frm setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease]];