我正在创建一个主要供西类牙用户使用的应用。
我无法访问真实设备来测试应用程序,但我已将 iOS 模拟器语言更改为西类牙语,并将地区更改为西类牙。
在应用程序中,我使用 NSDateFormatter 将 NSDate 转换为字符串,但在模拟器上,星期几和月份的字符串是英文的。
这是结果:
我的问题是:我应该以编程方式将字符串更改为西类牙语,还是在真实设备上以西类牙语显示?
谢谢。
更新
这里是我目前的代码:
//convertir fecha
NSString * language = [[NSLocale preferredLanguages] objectAtIndex:0];
NSLog(@"LOCALE = %@",language);
//NSLog result = es
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd"];
NSDate *date = [formatter dateFromString:fecha];
[formatter setLocale:[NSLocale currentLocale]];
NSDateFormatter *weekDay = [[NSDateFormatter alloc] init] ;
[weekDay setDateFormat:@"EEEE"];
[weekDay setLocale:[NSLocale currentLocale]];
更新 2
我已将模拟器配置更改为西类牙语/西类牙,正如您在图片中看到的那样,但日期显示为英文!!!为什么?
最佳答案
确保在模拟器中将区域设置为西类牙语/西类牙(相对于西类牙,西类牙可以是英语)。 (语言设置与日期无关。)在设置/常规/国际屏幕上,它将显示当前区域格式的示例;必须使用西类牙语才能使您的代码正常工作。
要在您的应用中查看,请添加以下代码:
NSString * language = [[NSLocale preferredLanguages] objectAtIndex:0];
NSCalendar * calendar = [[NSLocale currentLocale] objectForKey:NSLocaleCalendar];
NSLog(@"LOCALE = %@/%@",language, [calendar.locale localeIdentifier ] );
日历 Locale 可以是 en_ES(在西类牙表示英语)或 es_ES(在西类牙表示西类牙语)。
所有这些都意味着您的代码没问题;在西类牙的真实设备上,您不会有任何问题,要看到这一点,您只需像西类牙的设备一样设置模拟器的设置。
关于ios - 真实设备上的月份和星期几语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22283418/