Nsdateformatter 用于特定语言,如西班牙语

Cha*_*dni 4 objective-c nsdateformatter ios

我的申请有两种语言,一种是英语,另一种是西班牙语。现在我从服务器收到时间戳,我需要以“MMM dd,yyyy”格式显示日期。这给了我“2017 年 12 月 23 日”,但是当我将其转换为西班牙语时,我需要用西班牙语显示月份名称。您能否建议我将 12 个月的西班牙语名称指定为缩写形式,或者 NSDateFormatter 有这种类型的选项。

  NSDate *date = [dateFormatter dateFromString:[[[webserviceDict valueForKey:@"CurrentWeekEarning"]objectAtIndex:i-1]valueForKey:@"date"]];
                        [dateFormatter setDateFormat:@"MMM dd, yyyy"];
                        strTitle = [NSString stringWithFormat:@"%@",[dateFormatter stringFromDate:date]];
Run Code Online (Sandbox Code Playgroud)

Sul*_*han 5

只需设置区域设置并从模板创建格式(以设置正确的顺序):

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.locale = [NSLocale localeWithLocaleIdentifier:@"es"];
[formatter setLocalizedDateFormatFromTemplate:@"yyyyMMMdd"];
NSString *localizedDate = [formatter stringFromDate:[NSDate date]];
NSLog(@"Localized date: %@", localizedDate); // 26 dic 2017
Run Code Online (Sandbox Code Playgroud)

无需手动添加逗号或其他分隔符。它们也依赖于语言。

使用预定义格式可以实现相同的效果:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.locale = [NSLocale localeWithLocaleIdentifier:@"es"];
formatter.timeStyle = NSDateFormatterNoStyle;
formatter.dateStyle = NSDateFormatterMediumStyle;
Run Code Online (Sandbox Code Playgroud)