3

我正在使用 NSDate 来获取一个字符串,例如“18 Jun 09”,代码:

NSDate *theDate = [NSDate date];
NSString *dateString = [theDate descriptionWithCalendarFormat:@"%d %b %y"
        timeZone:nil
        locale: nil];

这可行,但只会产生英文输出。我需要将输出本地化为用户的默认语言。

Cocoa(在这种情况下为 Mac OS X 10.4、10.5)是否提供了这种本地化的工具,还是我必须为我自己的每个日期和月份名称手动本地化?

(我提供了一个语言环境,但尽管它确实提供了特定于语言环境的日期排序,但它似乎没有对日月名称进行任何本地化。)

4

2 回答 2

22

这是来自 Apple 的片段

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];

[dateFormatter setDateStyle:NSDateFormatterMediumStyle];

[dateFormatter setTimeStyle:NSDateFormatterNoStyle];

NSDate *date = [NSDate dateWithTimeIntervalSinceReferenceDate:118800];

NSString *formattedDateString = [dateFormatter stringFromDate:date];

NSLog(@"formattedDateString for locale %@: %@", [[dateFormatter locale] localeIdentifier], formattedDateString);
于 2009-06-18T07:07:47.620 回答
3

似乎缺少一行代码:

[dateFormatter setLocale:usLocale];
于 2011-01-09T23:48:12.997 回答