2012-02-07 3 views
-2

Можно создать дубликат:
Wrong time from NSDateFormatter
NSDate is 5 hours offNSString для преобразования NSDate получать неверный результат

Я пытаюсь преобразовать NSString в NSDate с кодом

result = @"2012-02-09"; 

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd"]; 

NSDate *dateFromString = [[NSDate alloc] init]; 
dateFromString = [dateFormatter dateFromString:result]; 
[dateFormatter release]; 
NSLog(@"date: %@", dateFromString); 

Но преобразование даты неверный результат, в журналах:

2012-02-07 13:08:29.553 Document[611:15503] date: 2012-02-08 19:00:00 +0000 

Может кто-нибудь, пожалуйста, скажите мне, что случилось с моим кодом?

+2

дубликата 27,000,000 других SO вопросов - ваш часовой пояс GMT +5 (Пакистан) , NSDate регистрируется как GMT. В коде нет ничего плохого. Если вы хотите получить локальное строковое значение с даты, передайте дату обратно через NSDateFormatter, не заходите в нее. – jrturton

+0

Нет ничего плохого - вам просто нужно установить часовой пояс. – tilo

ответ

0

Чтобы использовать NSLog для отображения даты, вы должны использовать свой форматировщик так, что NSDate будет отформатирован с TimeZone:

NSLog(@"date: %@", [dateFormatter stringFromDate:dateFromString]); 
Смежные вопросы