希望获得区域设置感知的格式化日期(例如,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
答案 0 :(得分:2)
在您的问题中存在内部双语,您希望呈现一个"本地感知的格式化日期"但你想改变它的表现形式,即用户通常不会看到/期望的东西。
说过你可能应该看看NSDateFormatter dateFormatFromTemplate:options:locale: