我在代码中使用了以下方法来获取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 中。它是与模拟器有关的东西还是我错过了什么?我没有开发人员证书,因此无法在真实设备上进行测试。
答案 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);
祝你好运!