Какао - Локализованная строка из NSDate, NSCalendarDate - PullRequest
3 голосов
/ 18 июня 2009

Я использую NSDate для получения строки, такой как «18 июня 09», с кодом:

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

Это работает, но приводит только к выводу на английском языке. Мне нужно, чтобы вывод был локализован на языке пользователя по умолчанию.

Предоставляет ли Cocoa (в данном случае Mac OS X 10.4, 10.5) средство для этой локализации, или мне приходится вручную локализовать для каждого случая названия дня и месяца?

(Я предоставил локаль, но, хотя в ней указан порядок дат, зависящий от локали, он, похоже, не выполняет локализацию названий дней и месяцев.)

Ответы [ 2 ]

22 голосов
/ 18 июня 2009

Вот фрагмент от 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);
3 голосов
/ 10 января 2011

Похоже, одна строка кода отсутствует:

[dateFormatter setLocale:usLocale];
...