获取用户的date格式? (DMY,MDY,YMD)

我正在创build一个表单,用户可以使用3个UITextFieldsinput自己的生日:1个月,1天,1年。 我想根据用户的date格式来安排它们。
即:美国用户的[MONTH] [DAY] [YEAR],欧洲用户的[DAY] [MONTH] [YEAR]等。
按国家划分的date格式地图: http : //en.wikipedia.org/wiki/Date_format_by_country#Map

什么是最简单的方式来获得这种格式?

现在我正在设置2000年10月20日的date并parsingstring。

NSCalendar *calendar = [NSCalendar currentCalendar]; NSDateComponents *components = [[NSDateComponents alloc] init]; [components setDay:20]; [components setMonth:10]; [components setYear:2000]; NSDate *date = [calendar dateFromComponents:components]; NSLog(@"%@", [NSDateFormatter localizedStringFromDate:date dateStyle:NSDateFormatterShortStyle timeStyle:NSDateFormatterNoStyle]); 

但我不认为这是正确的事情,因为我已经有太多不同的格式:

美国:10/20/00
FR:20/10/00
日本:2000/10/20
瑞典:2000-10-20

你可以使用NSDateFormatter dateFormatFromTemplate:options:locale:

 NSString *base = @"MM/dd/yyyy"; NSLocale *locale = [NSLocale currentLocale]; NSString *format = [NSDateFormatter dateFormatFromTemplate:base options:0 locale:locale]; 

format的值将根据区域设置以正确的格式进行调整。 现在的技巧是扫描format ,看看你find了什么顺序Mdy

你可以尝试设置dateFormatter的dateStyle。

 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; //Based on users locale it would automatically change the display format [dateFormatter setDateStyle:NSDateFormatterShortStyle]; NSString *dateString = [dateFormatter stringFromDate:date];