Как я могу получить локализованные единицы даты? - PullRequest
0 голосов
/ 28 марта 2012

Мне нужен массив с единицами даты, например, Год, Месяц, День .... Я хочу, чтобы они были локализованы, например, на немецком языке это будет Jahr, Monat, Tag ...

Кажется, я могу получить только локализованную строку из даты, но не единицы.Есть ли способ получить эти единицы из текущего календаря напрямую, а не переводить их вручную?

Ответы [ 2 ]

1 голос
/ 28 марта 2012

Насколько я знаю, вам нужно будет предоставить свои собственные переводы для этих подразделений.Вы можете получить имена дней и месяцев с NSDateFormatter, но не сами единицы.Как переводится единица, зависит от грамматического регистра и числа, поэтому перевод зависит от контекста.Не забывайте, что некоторые языки имеют грамматические числа , отличные от единственного и множественного числа!

0 голосов
/ 28 марта 2012
   NSCalendar *gregorian=[[NSCalendar alloc] initWithCalendarIdentifier: NSGregorianCalendar];
    [gregorian setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"CDT"]];
    NSDateComponents *timeZoneComps=[[NSDateComponents alloc] init];
    [timeZoneComps setHour:16];
    //specify whatever day, month, and year is appropriate
    NSDate *date=[gregorian dateFromComponents:timeZoneComps];
NSDateFormatter *df = [[NSDateFormatter alloc] init];
    NSString *monthName = [[df monthSymbols] objectAtIndex:(mymonth-1)];
    [df setDateFormat:@"EEE"];
   NSString *weekName = [ df stringFromDate:date];
    NSLog(@"The Week Name :: %@",weekName);
    [df release];

Вы можете использовать приведенный выше код, в частности timeZoneWithAbbreviation:@"CDT" представляет сокращение различных часовых поясов, таких как CDT, GMT, UTC, CST. Я думаю, что это будет полезно для вас.

...