2014-01-31 5 views
0

Эй StackOverflow Люди,Как вы определяете, какой формат даты предназначен для заданной NSString?

У меня есть дата метки времени NSString со следующим значением, которое я получаю от сервера бэкэнда:

NSString *date = @"2014-01-27T21:06:59.000-05:00"; 

Я не могу за жизнь мне понять, какой формат даты для строки выше, и пытаются использовать NSDateFormatter объект с двух следующих форматов даты (которые оба вернулись мне nil):

Формат 1: @"yyyy-MM-ddThh:mm:ss.000-05:00";

Формат 2: @"yyyy-MM-ddThh:mm:ss.SSS-SS:SS";

Мой вопрос: как вы используете уже заданную строку, чтобы определить, с каким форматом даты вы работаете?

+1

-05.00, вероятно, является смещением от UTC, т.е. информацией о часовом поясе. – fzwo

ответ

3

Попробуйте, это работает:

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

-05: 00 является Timezone, вам нужно использовать ZZZZZ для этого.

Кроме того, поскольку T не является частью даты, вам необходимо просмотреть его, используйте для этого 'T'.

Обратите внимание, что HH вместо hh.

Найти все форматтер с примерами здесь:

http://www.unicode.org/reports/tr35/tr35-25.html#Date_Format_Patterns

О вашем вопросе о том, как знать формат, вы должны угадать его на основе того, что вы видите, или попросить лицо, которое предоставляет эту дату.

+0

На самом деле, для часового пояса в формате '- ##: ##' вы хотите использовать 'ZZZZZ', а не' v'. – rmaddy

+0

Оба работают одинаково, какая разница? –

+1

Кроме того, используйте http://www.unicode.org/reports/tr35/tr35-25.html#Date_Format_Patterns, чтобы просмотреть спецификаторы текущего формата. Это официальная ссылка. – rmaddy

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