你如何用NSDateFormatter解释日期?

时间:2009-10-13 09:44:15

标签: iphone nsdateformatter

在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)

1 个答案:

答案 0 :(得分:2)

对不起,伙计们已经知道了。 NSDateFormatter默认使用当前系统区域设置。在上面的代码示例中,只有在将系统区域设置设置为美国以外的其他设置时才会失败。要修复它,就在将区域设置设置为日期字符串使用的区域设置之前,如下所示:

[frm setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease]];