Как вы интерпретируете даты с NSDateFormatter? - PullRequest
1 голос
/ 13 октября 2009

В Apple Docs говорят, что NSDateFormatter использует Unicode для спецификации. Я прочитал спецификацию, но у меня проблемы с интерпретацией этой даты:

NSDateFormatter *frm = [[NSDateFormatter alloc] init];
[frm setDateFormat:@"EEE MMM dd HH:mm:ss ZZZ yyyy"];
NSLog(@"Tue Oct 13 09:24:15 +0000 2009 becomes %@", [frm dateFromString:@"Tue Oct 13 09:24:15 +0000 2009"]);

Этот код распечатывается:

2009-10-13 11:37:40.334 test2[1704:20b] Tue Oct 13 09:24:15 +0000 2009 becomes (null)

1 Ответ

2 голосов
/ 13 октября 2009

Извините, ребята, разобрались уже. NSDateFormatter по умолчанию использует текущую системную локаль. В приведенном выше примере кода происходит сбой только в том случае, если вы устанавливаете системный языковой стандарт на что-то отличное от США. Чтобы исправить это, непосредственно перед тем, как установить языковой стандарт на тот, который используется вашей строкой даты, например:

[frm setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease]];
...