如何格式化NSDate?

时间:2011-02-27 07:04:02

标签: iphone iphone-sdk-3.0 ios4

如何让我的NSDate以例如“2011年2月26日星期二”的格式显示

2 个答案:

答案 0 :(得分:33)

做得对。 请勿对日期格式进行硬编码。有些国家/地区不是您所在的国家/地区,可能会有不同的日期格式。因此,如果要向用户显示此日期,则应使用将用户区域设置考虑在内的方法。

您可以使用iOS4中引入的dateFormatFromTemplate:options:locale:方法获取包含所需信息的相应格式。
如果你必须支持iOS< 4您应该使用此模板方法创建一个plist,以便为用户区域设置创建正确的日期格式。

NSLocale *locale = [NSLocale currentLocale];
NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease]; 
NSString *dateFormat = [NSDateFormatter dateFormatFromTemplate:@"E MMM d yyyy" options:0 locale:locale];
[formatter setDateFormat:dateFormat];
[formatter setLocale:locale];
NSLog(@"Formatted date: %@", [formatter stringFromDate:myDate]);

为我的语言区域提供So., 27. Feb 2011Sun, Feb 27, 2011用于en_US语言环境

答案 1 :(得分:2)

NSDateFormatter *gmtFormatter = [[NSDateFormatter alloc] init];  
[gmtFormatter setDateFormat:@"E MMM d yyyy"];