Iphone NSDateFormatter忽略NSUserDefaults中的AppleLanguages

Iphone NSDateFormatter忽略NSUserDefaults中的AppleLanguages,iphone,objective-c,localization,Iphone,Objective C,Localization,我的应用程序被翻译成几种语言,但现在我想强制使用荷兰语。通过将standardUserDefaults中的AppleLanguages键设置为Dutch,我强制使用了荷兰语。这适用于本地化字符串和xib文件 但是NSDateFormatter似乎完全忽略了这个值。它只是使用iPhone en_US区域设置来格式化日期,即使我自己在NSDateFormatter对象上设置了区域设置: NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]

我的应用程序被翻译成几种语言,但现在我想强制使用荷兰语。通过将standardUserDefaults中的AppleLanguages键设置为Dutch,我强制使用了荷兰语。这适用于本地化字符串和xib文件

但是NSDateFormatter似乎完全忽略了这个值。它只是使用iPhone en_US区域设置来格式化日期,即使我自己在NSDateFormatter对象上设置了区域设置:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSLocale *dutch = [[NSLocale alloc] initWithLocaleIdentifier:@"nl_NL"];
[dateFormatter setLocale:dutch];
[dutch release];
[dateFormatter setDateStyle:NSDateFormatterLongStyle];
dateLabel.text = [dateFormatter stringFromDate:[BabyInfo getDate]];
[dateFormatter release];
有人知道如何解决这个问题吗



更新:看来所有的日期元素(如NSDateFormatter和NSDatePicker)都不是使用语言区域设置来确定要显示的日期类型,而是查看位置区域设置。不过,我不知道如何告诉格式化程序和选择器我希望他们用荷兰语显示日期。因此,我们仍然欢迎任何帮助,但至少我现在了解了问题所在。

也许这个答案来得太晚了,但请查看以下内容:


这将强制格式化程序/选择器使用具有首选语言的区域设置,而无需更改您的iPhone/iPad设置。

要为日期格式化程序使用所选语言,请执行以下操作:

[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:[[NSLocale preferredLanguages] objectAtIndex:0]]];