Невозможно разобрать дату, используя NSDateFormatter - PullRequest
5 голосов
/ 10 мая 2010

Я получаю RSS, в котором я получаю следующий штамп с датой:

2010-05-10T06:11:14.000Z

Теперь я использую NSDateFormatter для анализа этой метки даты и времени.

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

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

Есть идеи?

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

Ответы [ 2 ]

27 голосов
/ 10 мая 2010

Вам необходимо проанализировать заполненные нулями значения для d, H, m, s

Вам нужно экранировать буквальное T как 'T'

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

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

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

Шаблоны формата даты

0 голосов
/ 10 мая 2010

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

  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-канала и проанализируйте ее вручную. Кажется, я помню, что это вызывало у меня проблемы.

...