根据currentLocale的NSDateformatter setDateFormat

mas*_*gar 10 cocoa-touch nsdateformatter ios nslocale

我很生气,可能是一个愚蠢的问题.

我有3个字符串:年,月和日.我需要有一个基于currentLocale的正确格式的日期,所以如果currentLocale localeIdentifier是en_US我的dateFormat应该是:MMM/dd/yyyy

如果它是fr_FR,则dateFormat应为dd/MMM/yyyy

我不认为这样做的唯一方法是获取currentLocale localeIdentifier并从一堆if开始.

提前致谢.

马克斯

edc*_*591 34

如果我理解您的问题,您希望将您NSDateFormatter设置为用户设备的区域设置.为此你可以做这样的事情:

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
[dateFormatter setTimeStyle:NSDateFormatterNoStyle];
[dateFormatter setLocale:[NSLocale currentLocale]];
NSDate *date = [NSDate date];
NSString *dateString = [dateFormatter stringFromDate:date];
Run Code Online (Sandbox Code Playgroud)


Ter*_*cox 7

查看NSDateComponents以创建NSDate,然后使用NSDateFormatter对其进行格式化.NSDateFormatter根据格式样式(例如
NSDateFormatterMediumStyle)使用当前区域设置来格式化日期.