NSDateFormatter неправильно разбирает дату - PullRequest
1 голос
/ 16 августа 2010

Я извлекаю строки из текста, которые представляют даты. Они выглядят так:

Monday August 16, 2010 05:28 AM EST

Я пытаюсь разобрать их с помощью NSDateFormatter. Я установил его формат:

[dateFormatter setDateFormat:@"EEEE MMMM d, YYYY h:mm a z"];

Однако это не работает. В приведенном выше примере, если я преобразую строку в дату, а затем эту дату в строку, средство форматирования даты возвращает следующее:

Monday December 28, 2009 5:28 AM EST

Что я делаю не так?

РЕДАКТИРОВАТЬ: Кажется, работает при использовании формата [dateFormatter setDateFormat:@"EEEE MMMM d, y h:mm a z"];. Странно ...

Ответы [ 2 ]

2 голосов
/ 18 августа 2010

Will,

NSDateFormatter использует стандарт Unicode для форматирования дат.Как вы обнаружили, «y» работает, а «YYYY» - нет.Если вы видите спецификацию (на несколько уровней в документации Apple, так что ее нелегко найти), вы увидите, что «Y» имеет следующее примечание: «Год (из« Недели года »), используемый в ISO год-неделякалендарь. Может отличаться от календарного года . "

Вот ссылка на спецификацию.

Я знаю, что вы исправили это самостоятельно,но это может помочь объяснить, почему «Y» не работает для вас.

0 голосов
/ 21 февраля 2011

"y" или "yyyy" в порядке.«ГГГГ» не работает.Проверьте подробности по следующей ссылке.

situee.blogspot.com: NSDateFormatter setDateFormat YYYY вернуть неправильный год

...