如何让我的NSDate以例如“2011年2月26日星期二”的格式显示
答案 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 2011
和Sun, Feb 27, 2011
用于en_US语言环境
答案 1 :(得分:2)
NSDateFormatter *gmtFormatter = [[NSDateFormatter alloc] init];
[gmtFormatter setDateFormat:@"E MMM d yyyy"];