使用NSDateFormatter&amp ;;格式化日期短款 - 但总有4位数

时间:2014-09-28 02:26:12

标签: objective-c nsdateformatter

希望获得区域设置感知的格式化日期(例如,2014年12月31日)。但我希望有一个完整的4位数年份。 NSDateFormatter返回它认为是区域设置的标准,有时有2位数,有时是4位数。

以下是代码:

NSDate *date = [NSDate date];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateStyle = NSDateFormatterShortStyle;
formatter.locale = [NSLocale localeWithLocaleIdentifier:@"en_US"];
NSLog(@"Date for US = %@",[formatter stringFromDate:date]);
formatter.locale = [NSLocale localeWithLocaleIdentifier:@"en_GB"];
NSLog(@"Date for GB = %@",[formatter stringFromDate:date]);

结果:

2014-09-27 22:49:28.875 Play3[17026:60b] Date for US = 9/27/14
2014-09-27 22:49:28.876 Play3[17026:60b] Date for GB = 27/09/2014

1 个答案:

答案 0 :(得分:2)

在您的问题中存在内部双语,您希望呈现一个"本地感知的格式化日期"但你想改变它的表现形式,即用户通常不会看到/期望的东西。

说过你可能应该看看NSDateFormatter dateFormatFromTemplate:options:locale: