2012-05-27 3 views
53

моей системы является 26 мая 22:55, но когда я получаю дату с [NSDate date] времени даты 27 мая 2:35Получить Текущую дату & время с [датой] NSDate даты время

это из-за часовой пояс?

если да, то как решить эту проблему, что, когда я получаю время даты, дайте мне дату моей системы и не проверяет часового пояса

+3

Как вы определяете, что такое объект даты? Вы просто регистрируете его? Если это так, скорее всего, напечатает свое время как UTC. Итак, да, это часовой пояс. Объект имеет правильную дату и время, он просто форматирует его для отображения в скоординированном универсальном времени. –

ответ

121
NSLocale* currentLocale = [NSLocale currentLocale]; 
[[NSDate date] descriptionWithLocale:currentLocale]; 

или использовать

NSDateFormatter *dateFormatter=[[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 
// or @"yyyy-MM-dd hh:mm:ss a" if you prefer the time with AM/PM 
NSLog(@"%@",[dateFormatter stringFromDate:[NSDate date]]); 
+6

для новичков (и указать очевидное) ... это NSLog, а не NSlog в последней строке ... просто опечатка. – fazhool

+5

Еще один небольшой сбой. '@" yyyy-MM-dd hh: mm: ss "' не является хорошим форматом даты, так как он даст 0-12 раз без суффикса AM/PM. Лучше - «@» yyyy-MM-dd hh: mm: ss a «' или '@» yyyy-MM-dd HH: mm: ss "' (для формата времени 0-24). – Alvaro

+0

Спасибо! Он работает хорошо. – Raja

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