2012-04-07 6 views
1

Я прочитал различные сообщения об этом, но до сих пор не решил проблему.Анализ ISO 8601 с NSDateFormatter

Вот строка, которую я пытаюсь разобрать в NSDate объекта:

2012-04-08T12:00:00.00+02:00 

Я понимаю, что проблема заключается в формате часового пояса. Вот строка формата даты, которую я пытаюсь:

yyyy-MM-dd'T'HH:mm:SSZZZZ 

Спасибо за любую помощь.

+1

Это выглядит очень похоже: http://stackoverflow.com/questions/2201216/is-there-a-simple-way-of-converting-an-iso8601-timestamp-to-a-formatted -nsdate который имеет три ответа. – DRVic

+2

Я думаю, что нить не решает эту проблему - там есть другой поток. И суть ответа заключается в том, что вы должны каким-то образом удалить этот последний символ «:», прежде чем пытаться проанализировать дату с помощью NSDateFormatter. –

+1

Я видел этот вопрос. Это не отвечает на мой вопрос. Ответ 1 даже не отвечает на вопрос, ответ 2 не использует 'NSDateFormatter', а ответ 3 использует методы, которые не существуют в iOS. – edc1591

ответ

3

Три вещь:

  • Используйте кнопки - [NSDateFormatter getObjectValue: forString: Диапазон: ошибка:] метод, чтобы узнать, сколько строки была разобрана и что ошибка предотвращенного разбора дальше.

  • Строка формата ZZZZ соответствует чему-то вроде «GMT + 02: 00», с этим «GMT». Вам может потребоваться ввести это в строку, которую вы обрабатываете, чтобы она работала.

  • Руководство по форматированию данных Apple сообщает "Consider Unix Functions for Fixed-Format, Unlocalized Dates".

+0

Спасибо! Инъекция «GMT» сделала трюк. Я также хотел бы отметить, что полезным советом является выход из строя того, что NSDateFormatter ожидает дату, используя ваш формат, чтобы выглядеть следующим образом: '[dateFormatter stringFromDate: [NSDate date]]'. – edc1591

0

Теперь доступен специальный NSISO8601DateFormatter.

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