如何根据iPhone设置(语言和区域)中选择的区域在应用程序中显示日期格式

时间:2016-01-25 05:56:11

标签: ios nsdateformatter

以下是我用来根据所选地区显示日期的代码。但始终显示2016年1月25日。根据地区变化不变。例如,美国:2016年1月5日和英国:2016年1月5日。

NSDate *date = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:NSLocaleIdentifier]];
[dateFormatter setDateStyle:NSDateFormatterLongStyle];
NSLog(@"%@",[dateFormatter stringFromDate:date]);

1 个答案:

答案 0 :(得分:1)

如果您希望根据用户的区域设置格式化日期,请不要设置区域设置。它已经默认为用户的语言环境。

NSDate *date = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterLongStyle];
NSLog(@"%@",[dateFormatter stringFromDate:date]);

BTW - 您使用NSLocaleIdentifier并不正确。这是一些内部常量,而不是您传递给initWithLocaleIdentifier:的值。