真实设备上的月和日工作日语言

时间:2014-03-09 14:28:02

标签: ios nsdateformatter

我正在创建一个主要由西班牙用户使用的应用。

我无法访问真实设备来测试该应用,但我已将iOS模拟器语言更改为西班牙语,将该区域更改为西班牙语。

在应用程序中我使用NSDateFormatter将NSDate转换为字符串,但在模拟器上,工作日和月份的字符串是英文的。

结果如下:

enter image description here

我的问题是:我应该以编程方式将字符串更改为西班牙语,还是以真实设备上的西班牙语显示?

谢谢。

已更新

这是我到目前为止的代码:

 //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

我已将模拟器配置更改为西班牙语/西班牙语,如图所示,但日期显示为英文! WHhy?

enter image description here

1 个答案:

答案 0 :(得分:1)

在模拟器中确保您已将区域设置为西班牙语/西班牙语(而不是西班牙语,西班牙语可以是英语)。 (语言设置与日期无关。)在设置/常规/国际屏幕上,它将显示当前区域格式的样本;必须使用西班牙语才能使代码正常工作。

International Settings page

要在您的应用中查看,请添加以下代码:

NSString * language = [[NSLocale preferredLanguages] objectAtIndex:0];
NSCalendar * calendar = [[NSLocale currentLocale] objectForKey:NSLocaleCalendar];
NSLog(@"LOCALE = %@/%@",language,   [calendar.locale localeIdentifier ] );

日历区域设置可以是en_ES,意思是西班牙语或es_ES,意思是西班牙语。

所有这些都意味着你的代码很好;在西班牙的真实设备上,你没有问题,看到这一点,你只需要像西班牙的设备一样设置模拟器的设置。