2014-09-12 1 views
-3

Я не знаю, как преобразовать эту строку в NSDate.Преобразование строки timestamp с символами T и Z в NSDate

Дата в этом формате «2012-10-21T07: 00: 00Z»

Я думаю, проблема в том, что я понятия не имею, что это такое T и Z означают в строке :)

NSDateFormatter *formatter = [[NSDateFormatter alloc]init]; 
[formatter setDateFormat:@"yyyy-MM-ddTHH:mm:ssZ"]; 
NSDate *dateStart = [formatter dateFromString:@"2012-10-21T07:00:00Z"]; 

// format that I want 
    [formatter setDateFormat:@"yyyy-MM-dd HH:mm"]; 

NSLog(@"date: %@", [formatter stringFromDate:dateStart]); 

все даты относятся к этому формату: 2014-09-12T03:46:25Z

+0

Сравните строку даты с строкой формата. Как они похожи? Насколько они разные? Вы посмотрели [спецификацию] (http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns)? –

+1

Это второй самый распространенный вопрос iOS здесь (после «непризнанного селектора»). –

+0

@HotLicks, «передача данных/объекта/массива для просмотра контроллера», чаще всего, я бы сказал. – vikingosegundo

ответ

2

Это дата ISO. Z означает Zulu, но означает время UTC.

Try:

[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZZZ"]; 

Для подачи вашего первоначального NSDate.

+0

Спасибо, это решило это;) – budidino

+1

Собственно, на основе этого единственного образца неясно, должен ли формат заканчиваться ZZZZZ или просто Z. Нужно было бы знать, как часовой пояс выражается, когда это не UTC. –

+1

(То, что исправлено, было помещением 'T' в одинарные кавычки.) –

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