如何从NSDate获取日期而不是时间

时间:2009-09-25 00:17:07

标签: iphone localization formatting nsdate

我需要将日期作为字符串而不是时间,并且必须进行本地化。

所以例如美国应该 2009年9月25日但是对于新西兰来说,它将是 2009年9月25日。 我可以通过指定格式“MMM dd YYYY”将日期转换为字符串,但它没有本地化。

有什么想法吗?

2 个答案:

答案 0 :(得分:7)

[NSDateFormatter localizedStringFromDate:[NSDate date]
                               dateStyle:NSDateFormatterMediumStyle
                               timeStyle:0]

答案 1 :(得分:3)

关键是将setTimeStyle:kCFDateFormatterNoStyle发送到dateFormatter。这将设置dateFormatter,以便它只格式化日期而不输出时间:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];    
[dateFormatter setLocale: [NSLocale currentLocale]];    
[dateFormatter setDateStyle:kCFDateFormatterShortStyle]; // or whichever style...
[dateFormatter setTimeStyle:kCFDateFormatterNoStyle];   
NSString* dateString = [dateFormatter stringFromDate: [NSDate date]];

这给了我以下输出:

12/18/09