2010-10-06 3 views
5

У меня возникла проблема с преобразованием строки даты/времени в NSDate.NSDateFormatter Дата Формат даты/времени с двоеточием в часовом поясе

дата строки нужно преобразовать это: 2002-12-24T00: 00: 00-07: 00

Мой формат строки даты в настоящее время YYYY-MM-dd'T'HH: мм: ssZZZ

Проблема заключается в толстой кишке в часовом поясе.

ZZZ возвращает строку типа: -0700 (без двоеточия) Как преобразовать строку с двоеточием в часовой пояс?

Благодаря

ответ

3

Я предлагаю делать некоторые манипуляции строки, так что в такой форме, которая dateWithString может легко принять - как об использовании stringByReplacingOccurrencesOfString один или несколько раз, чтобы избавиться от толстой кишки?

dateWithString хочет:

YYYY-MM-DD HH:MM:SS ±HHMM 

у вас есть:

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

Вы, вероятно, нужно использовать некоторую комбинацию componentsSeparatedByString (чтобы избавиться от части «Т», если у вас есть небольшой диапазон значений, возможных для T, и, возможно, напишите себе небольшую функцию для преобразования ssZZZ в + HHMM.

+1

«T» будет обрабатывать T, поэтому все, что мне нужно было избавиться, было двоеточием между временем зоны. Моя забота заключалась в том, что это был «легкий» путь вокруг проблемы, но не правильный путь. Однако от всех, о которых я говорил об этом, это, по-видимому, единственный способ сделать это. Поскольку моя строка всегда в одном формате, я могу сделать stringByReplacingOccurrencesOfString: withString: options: range: и установить диапазон 1 в длину и 3 из конца строки – kdbdallas

+0

У меня есть строка точно так же, как ваша (2002-12- 24T00: 00: 00-07: 00), но мой идентичный формат даты «yyyy-MM-dd'T'HH: mm: ssZZZ» независимо от того, есть ли у меня «:» или нет во входной строке. Что-то изменилось? –

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