У меня небольшая проблема с ошибкой NSDateFormatter на устройстве одного пользователя (возвращает nil при разборе строки) и отлично работает, когда я запускаю его локально (либо в симуляторе, либо на моем устройстве).
Я пытаюсь исключить, что может вызвать разницу в этом поведении. Моей первой мыслью была локаль, но я попытался установить ее явно, чтобы гарантировать, что всегда используется одна и та же локаль, но это не имеет значения.
Вот код:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"];
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_GB"];
[dateFormatter setLocale:locale];
[locale release];
NSDate *theDate = [dateFormatter dateFromString:dateString];
NSLog(@"PARSING DATE %@ AS %@", dateString, theDate);
На неисправном устройстве я получаю:
PARSING DATE 2010-11-28T20:30:49-0000 AS (null)
Но локально я получаю:
PARSING DATE 2010-11-28T20:30:49-0000 AS 2010-11-28 20:30:49 +0000
Это сводит меня с ума, я что-то упускаю?
Я использую 4.2 локально (симулятор) и на моем устройстве (iPhone 4). Неисправным устройством является 3GS под управлением 4.2.1.
Любые идеи будут высоко оценены!