2009-09-08 49 views
4

我用这个代码来处理日期字符串从一个JSON提要进来:NSDateFormatter与区域格式

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"]; 

我得到一个可用的日期,如果我的区域格式是美国或联合王国,但如果我将它设置为德国,则返回零。我知道不同地区的行为存在一些差异,但如果我定义格式不应该纠正任何不一致?

回答

8

“Tue”和“Sep”等名称均为英文。其他语言使用不同的名称。

如果你想能够解析英语日期独立于设备的区域设置,使用-setLocale:方法设置你的DateFormatter的区域设置en_US

+1

感谢它完成:) datePicker.locale = [[NSLocale页头] initWithLocaleIdentifier:@ “EN_US”]; 或对于设备去波纹管路径和更改您的地区,如果没有按要求设置 设置>>通用>>国际>>地区甲酸盐>>(选择)美国 – 2014-01-17 12:06:13

+0

感谢这帮助我解决了一个重大的崩溃问题与我应用程序。对于区域格式不同的用户。 – vforvendetta 2014-04-28 22:39:21

2

谢谢解决它: [formatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@“US”] autorelease]];