2016-09-12 9 views
-3

Я хотел бы сверить строку на сегодняшний день.Преобразование NSString в NSDate

Дата в формате струнной: 2016-09-12T09:52:39Z (без пробела)

Большинство решений, которые я нашел имеет по крайней мере пространство между датой и временем текста. Что не работает в моем случае.

Основная проблема преобразования формата даты - «T» и «Z». Я думаю, некоторые из них, как формат даты не distingushing даты "dd" и часовой пояс "T". Я попытался отформатировать это, но не работал.

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss'Z'"]; 

NSDate *date = [[NSDate alloc] init]; 
date = [formatter dateFromString:datestring]; 

Любое решение для преобразования такой строки в дату?

Редактировать: Я упомянул, что при публикации вопроса это - В большинстве вопросов, связанных с «преобразованием строки в дату», есть пробелы в тексте, поэтому вы можете написать форматировщик в соответствии с этим. В моем случае не было места между датой и частью часа &, вместо этого он имеет T. Следовательно, я не смог преобразовать дату строки в объект даты, вместо этого я получил нуль. Для чего я попробовал некоторые решения &, после чего я разместил вопрос.

+0

Что не работает точно? Я пробовал ваш код, и я получил '2016-09-12 07:52:39 + 0000' для' NSDate'. – Larme

+0

что вам нужно? –

+0

@ Larme, форматирование не преобразует строку в нужную дату. вы попробовали с примером строки, которую я упомянул в вопросе. – JiteshW

ответ

0

enter image description here

плз проверить DateString. он отлично работает в моем конце.

+0

Этот ответ неверен. НЕ цитируйте 'Z' в формате даты. «Z» в строке даты представляет собой часовой пояс даты. 'Z' означает часовой пояс UTC. Если вы указываете 'Z' в формате даты,' Z' игнорируется, а строка даты анализируется, как если бы она была в локальное время, а не время UTC, и вы получили неправильную дату. – rmaddy

+0

@rmaddy plz прочитал комментарий пользователя перед тем, как что-либо сделать. –

+0

Какой комментарий? Посмотрите на изображение в своем ответе. Значение 'date' показывает время 4:22:39 UTC, но строка, обрабатываемая, равна 9:52:39 UTC. Они должны быть одинаковыми, но они не связаны с ошибкой цитирования Z в строке формата. – rmaddy