NSDateformatter дает «ноль» на iPhone, правильную дату на iPad - PullRequest
1 голос
/ 19 октября 2010

Может ли кто-нибудь объяснить мне это? Я видел довольно много проблем с DateFormatter, и все они, похоже, связаны, но не совсем то, с чем я здесь сталкиваюсь.

Рассмотрим следующий код:

NSString * CleanDate = @"20101117T020000-0000";
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyyMMdd'T'HHmmssZ"];  
NSDate * date = [dateFormatter dateFromString:cleanDate];

NSLog(@"CleanDate: %@, Date: %@",cleanDate, date );

Выход журнала на iPhone Simulator равен

CleanDate: 20101117T020000-0000, дата: (ноль)

на iPad Simulator

CleanDate: 20101117T020000-0000, дата: 2010-11-17 03:00:00 + 0100

Те же результаты на реальных устройствах. Интересно, что вчера вечером в симуляторе iPhone все работало нормально. Я сбросил симуляторы на их значения по умолчанию, изменил часовые пояса и языки, безрезультатно.

Должен ли я что-то установить в настройках своего проекта?

1 Ответ

2 голосов
/ 19 октября 2010

Проверьте версии ОС, которые вы используете.В iOS 4 были сделаны некоторые изменения в NSDateFormatter. В частности, он использовался для удаления любого текста в строке после даты и возврата даты.Теперь, если там есть мусор, он возвращает ноль.Поскольку на iPad-симе установлена ​​версия 3.2, а на вашем iPhone-симе установлена ​​версия 4.0, скорее всего, это проблема.

...