如何格式化 NSDate? [英] How to format NSDate?

查看:26
本文介绍了如何格式化 NSDate?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

How can I get my NSDate to display in the format for example i.e "Tue Feb 26, 2011"

推荐答案

做对了.不要对您的日期格式进行硬编码.有些国家不是您所在的国家/地区,它们可能有不同的日期格式.因此,如果您想向用户显示此日期,您应该使用一种将用户区域设置考虑在内的方法.

Do it right. Don't hardcode your date formats. There are countries that are not your country and they might have different date formats. So if you want to show this date to the user you should use a method that takes the users locale into account.

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

You could use the dateFormatFromTemplate:options:locale: method introduced in iOS4 to get the appropriate format with all the information you want.
And if you have to support iOS < 4 you should create a plist with this template method to create the correct date format for the user locale.

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.
2011 年 2 月 27 日星期日,适用于 en_US 语言环境

gives So., 27. Feb 2011 for my locale.
and Sun, Feb 27, 2011 for the en_US locale

这篇关于如何格式化 NSDate?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆