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

时间:2017-12-26 14:55:36

标签: ios objective-c nsdateformatter

我的申请是2种语言,一种是英语,另一种是西班牙语。现在我从服务器收到时间戳,我需要在" 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]];

3 个答案:

答案 0 :(得分:3)

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

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

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

使用预定义格式可以实现同样的目标:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.locale = [NSLocale localeWithLocaleIdentifier:@"es"];
formatter.timeStyle = NSDateFormatterNoStyle;
formatter.dateStyle = NSDateFormatterMediumStyle;

答案 1 :(得分:1)

Swift 5.2示例,设置西班牙语“ es_ES” 语言环境:

let today = Date()
let formatter = DateFormatter()

formatter.dateStyle = .long

formatter.locale = .init(identifier: "es_ES")
self.dateString = formatter.string(from: today)

答案 2 :(得分:0)

您需要设置的特定语言找到

NSDateFormatter * formatter = [[NSDateFormatter alloc] init];

[formatter setDateStyle:style];

[formatter setDateFormat:@" MMM dd,yyyy"];

NSDate * temp = [formatter dateFromString:strDate];

[formatter setDateFormat:format];

[formatter setLocale:[NSLocale currentLocale]];