2013-05-02 7 views
1

Я стараюсь, чтобы мой NSDateFormatter установил свой язык на немецкий, но он терпит неудачу. В приведенном ниже коде, в то время как dateFrom успешно разобран, dateTo - нет.NSDateFormatter cant parse German date

Примечание: на немецком языке это февраль, а не февраль.

NSLocale *germanLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"de_DE"]; 
NSString *formatString = [NSDateFormatter dateFormatFromTemplate:@"dd. MMMM" options:0 
                  locale:germanLocale]; 

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:formatString]; 
NSDate *dateFrom = [dateFormat dateFromString:@"20. September"]; 
NSDate *dateTo = [dateFormat dateFromString:@"20. Februar"]; 

ответ

2

Попробуйте установить локаль NSDateFormatter:

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
dateFormat.locale = germanLocale; 
[dateFormat setDateFormat:@"dd. MMMM"]; 
NSDate *dateFrom = [dateFormat dateFromString:@"20. September"]; 
NSDate *dateTo = [dateFormat dateFromString:@"20. Februar"]; 
+0

спасибо, это работает. но почему настройка locale в функции DateFormatFromTemplate не работает? –

+0

, потому что formatString - это просто строка, она не содержит информации о локали. Шаблон даты может быть изменен (например, порядок компонентов даты может быть изменен в соответствии с локалью), но при этом он возвращает только строку. Пожалуйста, обратитесь к документации по этому методу - есть пример, который показывает, как это происходит и что он делает. – Jeepston