Ios 特定语言(如西班牙语)的Nsdateformatter
我的申请有两种语言,一种是英语,另一种是西班牙语。现在我从服务器收到时间戳,我需要以“mmmdd,yyyy”格式显示日期。 这是给我的“2017年12月23日”,但当我把它转换成西班牙语时,我需要用西班牙语显示月份名称。 你能建议我用西班牙语指定12个月的名字作为一个简短的形式吗?或者NSDateFormatter有这种类型的选项Ios 特定语言(如西班牙语)的Nsdateformatter,ios,objective-c,nsdateformatter,Ios,Objective C,Nsdateformatter,我的申请有两种语言,一种是英语,另一种是西班牙语。现在我从服务器收到时间戳,我需要以“mmmdd,yyyy”格式显示日期。 这是给我的“2017年12月23日”,但当我把它转换成西班牙语时,我需要用西班牙语显示月份名称。 你能建议我用西班牙语指定12个月的名字作为一个简短的形式吗?或者NSDateFormatter有这种类型的选项 NSDate *date = [dateFormatter dateFromString:[[[webserviceDict valueForKey:@"Curr
NSDate *date = [dateFormatter dateFromString:[[[webserviceDict valueForKey:@"CurrentWeekEarning"]objectAtIndex:i-1]valueForKey:@"date"]];
[dateFormatter setDateFormat:@"MMM dd, yyyy"];
strTitle = [NSString stringWithFormat:@"%@",[dateFormatter stringFromDate:date]];
对于特定语言,您需要设置定位 NSDateFormatter*格式化程序=[[NSDateFormatter alloc]init] [格式化程序setDateStyle:style] [格式化程序setDateFormat:@“MMM dd,yyyy”] NSDate*temp=[formatter dateFromString:strDate] [格式化程序setDateFormat:format]
[格式化程序setLocale:[NSLocale currentLocale]] 只需设置区域设置并从模板创建格式(以设置正确的顺序): 无需手动添加逗号或其他分隔符。他们还依赖于语言 使用预定义格式也可以实现同样的效果:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.locale = [NSLocale localeWithLocaleIdentifier:@"es"];
formatter.timeStyle = NSDateFormatterNoStyle;
formatter.dateStyle = NSDateFormatterMediumStyle;
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)
检查
dateFormatter.locale
更新问题,说明如何创建和设置日期格式化程序。如果正在设置格式,则无需设置样式。手动。理想情况下,不要设置特定的格式,而是使用模板为区域设置创建格式,否则日期将无法正确本地化。
let today = Date()
let formatter = DateFormatter()
formatter.dateStyle = .long
formatter.locale = .init(identifier: "es_ES")
self.dateString = formatter.string(from: today)