具有区域格式的NSDateFormatter

时间:2009-09-08 19:40:01

标签: iphone objective-c

我使用此代码处理来自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。我理解不同语言环境中的行为存在一些差异,但如果我定义一种格式不应该纠正任何不一致?

2 个答案:

答案 0 :(得分:8)

“Tue”和“Sep”这样的名字是英文。其他语言使用不同的名称。

如果您希望能够独立于设备的区域设置解析英语日期,请使用 en_US -setLocale: >方法。

答案 1 :(得分:2)

谢谢你修复了:     [formatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@“US”] autorelease]];