2010-05-10 3 views
5

Я выборку в RSS, в котором я получаю следующее отметки даты:Невозможно разобрать дату, используя NSDateFormatter

2010-05-10T06:11:14.000Z 

Теперь я использую NSDateFormatter разобрать эту дату-.

[parseFormatter setDateFormat:@"yyyy-MM-dTH:m:s.z"]; 

Но ее не работает нормально, если просто удалить отметку времени части она работает на дату [parseFormatter setDateFormat:@"yyyy-MM-d"]; Но если я добавить остальную часть материала он возвращает ноль.

Любая идея?

Заранее спасибо ....

ответ

26

Вам необходимо разобрать нули значения D, H, M, S

Вы должны избежать буквального T, как 'T'

Вам необходимо разобрать дробную часть секунд SSS

Вы можете принять литерал Z с 'Z' или использовать прописную букву Z, чтобы попытаться разобрать часовой пояс, но RSS использует отдельный стандарт.

@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"

Date Format Patterns

+0

его рабочими идеально, ваше предложение действительно работало, зона обрабатывается и его возвращение +0005 теперь, и T спасшемси , Счастье снова. :) – Ansari

0

Из памяти У меня была эта проблема в прошлом, а также. Несколько вещей, чтобы попробовать:

  1. Заменить «T» в вашем RSS канал с пространством (и, очевидно, изменить строку формата даты, а).

  2. Ваш RSS-канал имеет заполненные цифры, где в вашей строке формата нет. Попробуйте попробовать «yyyy-MM-ddTHH: mm: ss.Z». Согласно этой ссылке, «z» следует пропустить. http://www.stepcase.com/blog/2008/12/02/format-string-for-the-iphone-nsdateformatter/

  3. Сбросьте информацию о часовом поясе из RSS-ленты и проанализируйте ее вручную. Кажется, я помню, что это вызывало проблемы для меня.

+0

Спасибо за удобные ссылки, а также за предложение :) – Ansari

Смежные вопросы