iPhone отображает дату, используя язык пользователя, но на другом языке - PullRequest
5 голосов
/ 18 ноября 2010

Есть ли какое-либо решение для отображения пользователю даты, используя его настройки локали, но слова должны быть на другом языке?

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

Ответы [ 2 ]

5 голосов
/ 18 ноября 2010

Хороший вопрос.Это возможно, если сначала создать NSDateFormatter с языковым стандартом пользователя (по умолчанию), установить его стиль, а затем сохранить текущий формат даты.После этого установите языковой стандарт на язык, который вы хотите отобразить, и сбросьте формат даты:

NSDateFormatter *df = [[[NSDateFormatter alloc] init] autorelease];
[df setDateStyle:NSDateFormatterFullStyle];
NSString *usersDateFormat = [df dateFormat];
[df setLocale:[[[NSLocale alloc] initWithLocaleIdentifier(@"de_DE")] autorelease]];
[df setDateFormat:usersDateFormat];
NSString *dateString = [df stringFromDate:[NSDate date]];
1 голос
/ 18 ноября 2010

Ссылка на класс iOS для NSDateFormatter содержит пример кода для этого:

http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/Reference/Reference.html

В разделе «Обзор».

Обычно вы устанавливаете локаль вручную, и форматировщик форматирует данную дату в соответствии с этой локалью.

...