我使用此代码处理来自json feed的日期字符串:
NSDateFormatter * formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle: NSDateFormatterLongStyle];
[formatter setFormatterBehavior: NSDateFormatterBehavior10_4];
[formatter setDateFormat: @"EEE, dd MMM yyyy HH:mm:ss +0000"];
所以,如果我打电话
NSDate *date = [formatter dateFromString: @"Tue, 08 Sep 2009 19:21:27 +0000"];
如果我的地区格式是美国或联合王国,我会收回可用日期,但如果我将其设置为德国,则返回nil。我理解不同语言环境中的行为存在一些差异,但如果我定义一种格式不应该纠正任何不一致?
答案 0 :(得分:8)
“Tue”和“Sep”这样的名字是英文。其他语言使用不同的名称。
如果您希望能够独立于设备的区域设置解析英语日期,请使用 en_US
-setLocale:
>方法。
答案 1 :(得分:2)
谢谢你修复了: [formatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@“US”] autorelease]];