NSDateFormatter localizedStringFromDate:dateStyle:timeStyle在IOS模拟器中不返回正确的本地化字符串

时间:2014-01-04 10:30:19

标签: ios ios7 localization ios-simulator nsdateformatter

我在代码中使用了以下方法来获取NSDate对象的本地化字符串:

todayDate = [NSDate date];    
todayDateString = [NSDateFormatter localizedStringFromDate:todayDate
                                                 dateStyle:NSDateFormatterLongStyle
                                                 timeStyle:NSDateFormatterLongStyle];

我在 IOS Simulator 上运行应用程序,并将Locale设置为 English ,它显示: 2014年1月4日上午11:10:40 GMT + 1 然后我将模拟器语言更改为 Italian 并重新启动 App Storyboard 中的本地化字符串已正确更改为 Italian ,但NSDateFormatter localizedStringFromDate:dateStyle:timeStyle:方法生成的字符串始终位于 English 中。它是与模拟器有关的东西还是我错过了什么?我没有开发人员证书,因此无法在真实设备上进行测试。

1 个答案:

答案 0 :(得分:0)

我无法重现你所拥有的问题,但我之前也在努力使用localizedStringFromDate:dateStyle:timeStyle:类方法。我的建议是使用实例方法,然后你可以更好地控制正在发生的事情:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale:[NSLocale currentLocale]];
dateFormatter.dateStyle = NSDateFormatterLongStyle;
dateFormatter.timeStyle = NSDateFormatterLongStyle;

NSDate *todayDate = [NSDate date];
NSString *todayDateString = [dateFormatter stringFromDate:todayDate];

NSLog(@"Todays date localy: %@", todayDateString);
祝你好运!