【发布时间】:2009-09-25 00:17:06
【问题描述】:
我需要日期作为字符串,而不是时间,它必须本地化。
例如,美国应该是 2009 年 9 月 25 日,但对于新西兰来说应该是 2009 年 9 月 25 日。 我可以通过指定格式“MMM dd YYYY”将日期转换为字符串,但它没有本地化。
有什么想法吗?
【问题讨论】:
标签: iphone localization formatting nsdate
我需要日期作为字符串,而不是时间,它必须本地化。
例如,美国应该是 2009 年 9 月 25 日,但对于新西兰来说应该是 2009 年 9 月 25 日。 我可以通过指定格式“MMM dd YYYY”将日期转换为字符串,但它没有本地化。
有什么想法吗?
【问题讨论】:
标签: iphone localization formatting nsdate
[NSDateFormatter localizedStringFromDate:[NSDate date]
dateStyle:NSDateFormatterMediumStyle
timeStyle:0]
【讨论】:
关键是将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
【讨论】: