2016-11-09 2 views
-1

У меня возникли проблемы с форматированием строки в NSDate. Это мой код.NSDateFormatter dateFromString, возвращающий нуль или текущую дату

 NSTimeZone *outputTimeZone = [NSTimeZone defaultTimeZone]; 
     NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 

     [dateFormat setTimeZone:outputTimeZone]; 
     [dateFormat setLocale:[NSLocale currentLocale]] ; 

     [dateFormat setDateFormat:@"dd/MM/yyyy HH:mm:ss"]; 
     NSDate *myDate = [dateFormat dateFromString:dateString]; 

Это строка, которую я пытаюсь отформатировать.

"09/11/2016 12:27:05"

это результат я получаю

2016-11-09 04:48:29 UTC

Пожалуйста help Я пытался использовать различные решения и форматы, но безрезультатно.


После вызова dateFromString, добавьте строку NSLog ("ул =% @, дата =% @", DateString, MyDate) ;. Обновите свой вопрос с помощью вывода этого оператора журнала. - rmaddy 59 минут назад

Это мой выход

ул = 09/11/2016 14:13:35, дата = 2016-11-09 06:13:35 +0000

+0

Дата Hase ООН упорядоченный формат, проверить ур часовой пояс –

+0

После вызова 'dateFromString', добавьте строку' NSLog ("ул =% @, дата =% @ ", dateString, myDate);'. Обновите свой вопрос с помощью вывода этого оператора журнала. – rmaddy

+0

что вы хотите в качестве вывода? – Lion

ответ

-1

Использовать timeZonewithAbbrevation вместо defaultZone.

Заменить NSTimeZone *outputTimeZone = [NSTimeZone defaultTimeZone]; с

// Для GMT

NSTimeZone * outputTimeZone = [NSTimeZone timeZoneWithAbbreviation: @ "GMT + 0: 00"];

ИЛИ

// Для UTC

NSTimeZone *outputTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"UTC"]; 
+0

Спасибо! Это сработало для меня! Я использовал timeZoneWithAbbrev: @ "UTC" и мой результат был str = 09/11/2016 14:32:29, date = 2016-11-09 14:32:29 +0000 Формат по-прежнему отличается, хотя но важно то, что время правильное! Большое спасибо! –

+1

Нет, это неправильно. Ты не понимаешь. – rmaddy

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