我的申请是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]];
答案 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]];