2013-05-04 2 views
3

Я получил дату в следующем формате:дата MagicalRecord разборе

2013-05-04T05:07:09+00:00

Я использую MagicalRecord для отображения NSDate автоматически. Насколько я вижу, указанный формат даты должен соответствовать формату даты по умолчанию MagicalRecord: yyyy-MM-dd'T'HH:mm:ss'Z'.

Я попытался с помощью записи пользовательских dateFormat в информации о пользователе атрибута (см this article):

yyyy-MM-ddTHH:mm:ss+Z, yyyy-MM-dd T HH:mm:ss Z, yyyy-MM-dd'T'HH:mm:ss'+'Z

, но ни один из них не работает для того, чтобы иметь его разобрать дату правильно и он всегда возвращает nil независимо от настройки пользовательского dateFormat или с использованием формата MagicalRecord по умолчанию.

ответ

9

Давайте посмотрим на вашей строке:

2013-05-04T05:07:09+00:00 

Это:

  1. четыре цифры года
  2. дефис
  3. нулями месяц
  4. дефис
  5. нулями день месяца
  6. 'T' символ
  7. нулей часа
  8. ':' символ
  9. нули минуты
  10. ':' символ
  11. нули второй
  12. часового пояс (с направлением от GMT и разделительный двоеточие)

Таким образом, в соответствии с the date format specifiers documentation, шаблон вы хотите это:

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

Кроме того, обязательно использовать en_US_POSIX локаль с NSDateFormatter.

+0

Вы были на минуту быстрее меня :) +1 – HAS

+0

Спасибо, что сделал! Я был под впечатлением, что только один Z был необходим в 00:00 согласно спецификации, так что это была моя проблема. Большое спасибо за ваш быстрый ответ! – runmad

+0

@runmad 'Z' будет для' + 0000'. Поскольку у вас есть ':' там, вам нужно 'ZZZZZ' :) –

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