2013-03-21 3 views
0

У меня есть одна дата в формате строки «2013-03-19T19:00:50»
Я пытаюсь преобразовать его в NSDate с помощью NSDateFormatterПреобразовать NSString для возврата значения NSDate (нуль)

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-ddThh:mm:ss"]; 
NSDate *startDate = [dateFormatter dateFromString:date]; 
NSLog(@"date in date format : %@",startDate); 

но это дает мне нулевую дату

date in date format : (null) 

В чем проблема?

+0

что фактическая потребность означает вывод, что ожидает? –

+1

T - это указатель времени, который предшествует компонентам времени представления. –

+0

ok Спасибо за информацию @NimitParekh – KDeogharkar

ответ

7

Использование:

[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"]; 

У вас есть время в 24-часовом формате, поэтому HH требуется. hh используется, когда время находится в 12-часовом формате.

И T должен быть в одной кавычки, T не является частью даты, это добавленный текст на нем.

+0

спасибо @Anoop. iI проверить его на несколько раз, и он работает. – KDeogharkar

+0

только один вопрос, почему мы должны ставить «Т», а не только Т? – KDeogharkar

0

Делай так,

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"]; 
NSDate *startDate = [dateFormatter dateFromString:date]; 
NSLog(@"date in date format : %@",startDate); 
+0

Отлично работает. почему мы должны поставить «Т» вместо Т? – KDeogharkar

+0

он работает в первый раз, но теперь он не работает. – KDeogharkar

1

Согласно date formatter patternshh означает Hour [1-12] Вы хотите Hour [0-23], который HH.

И любые буквы, которые не являются шаблонами формата даты, или не должны интерпретироваться таким образом, должны быть вставлены между апострофами.

использование [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];

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