2012-05-27 6 views
53

moim systemie jest 26 maja 22:55, ale kiedy się datę z [NSDate date] data czas jest 27 maja 02:35Get Aktualna data i czas z [NSDate date] data czas

jest to ze względu na strefę czasową?

jeśli tak, jak rozwiązać ten problem, że kiedy się czas datę, daj mi datę mojego systemu i nie sprawdza strefę czasową

+3

Jak określasz, czym jest obiekt daty? Czy po prostu się go rejestrujesz? Jeśli tak, prawdopodobnie wydrukuje swój czas jako UTC. Tak, tak, to jest strefa czasowa. Obiekt ma prawidłową datę i godzinę, po prostu formatuje go do wyświetlenia w skoordynowanym czasie uniwersalnym. –

Odpowiedz

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

lub użyj

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

dla początkujących (i stwierdzenie oczywistości) ... to NSLog, a nie NSlog w ostatniej linii ... tylko literówka. – fazhool

+5

Kolejny mały błąd. '@" rrrr-MM-dd gg: mm: ss "' nie jest ładnym formatem daty, ponieważ daje 0-12 czasu bez przyrostka AM/PM. Lepszym jest '@" rrrr-MM-dd gg: mm: ss a "lub" @ "rrrr-MM-dd GG: mm: ss" (dla formatu 0-24). – Alvaro

+0

Dziękujemy! Działa dobrze. – Raja