Несогласованное поведение с NSDateFormatter на двух разных устройствах

У меня небольшая проблема с NSDateFormatter, который не работает на одном пользователе » s устройство (возвращает 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.

Любые идеи были бы очень признательны!

12
задан Luke Redpath 11 December 2010 в 19:24
поделиться