2010-11-18 5 views
1

Ich möchte die aktuelle Zeit eines Landes zeigen. Angenommen, ich möchte die aktuelle Zeit von USA in Australien herausfinden oder die aktuelle Zeit von England in Südafrika sehen, wie ich dann die aktuelle Zeit des Landes abrufe? Dafür habe ich einen Code geschrieben, aber ich habe nicht funktioniert,Wie kann ich die aktuelle Zeit eines Landes in meiner Anwendung abrufen?

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setTimeStyle:NSDateFormatterFullStyle]; 
[dateFormatter setDateStyle:NSDateFormatterFullStyle]; 

NSDate *date = [NSDate date]; 

NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]; 
[dateFormatter setLocale:usLocale]; 

Der obige Code gibt mir keine richtige Zeit.

Dank

Antwort

6

Es gibt so etwas wie Zeit von USA oder Australien nicht. Sie müssen die richtige Zeitzone verwenden, es gibt 4 auf dem Festland der USA und 3 verschiedene Zeitzonen in Australien.

Um die aktuelle Zeit (string) von Melbourne, Berlin und Los Angeles erhalten Sie folgenden Code verwenden würde:

NSDate *now = [NSDate date]; 
NSDateFormatter *df = [[[NSDateFormatter alloc] init] autorelease]; 
[df setTimeStyle:NSDateFormatterLongStyle]; 
[df setTimeZone:[NSTimeZone timeZoneWithName:@"Australia/Melbourne"]]; 
NSString *melbourneTime = [df stringFromDate:now]; 
[df setTimeZone:[NSTimeZone timeZoneWithName:@"Europe/Berlin"]]; 
NSString *berlinTime = [df stringFromDate:now]; 
[df setTimeZone:[NSTimeZone timeZoneWithName:@"America/Los_Angeles"]]; 
NSString *laTime = [df stringFromDate:now]; 
NSLog(@"%@", melbourneTime); 
NSLog(@"%@", berlinTime); 
NSLog(@"%@", laTime); 

Die locale Sie hat Einfluss geändert haben auf das Format. Zum Beispiel ist die aktuelle Zeit in Melbourne in der Locale en_US November 18, 2010 9:14:28 PM GMT+11:00, aber in de_DE ist es 18. November 2010 21:14:28 GMT+11:00

+0

gibt es egal wie viele Zeitzone in jedem Land vorhanden ist. Ich möchte nur die aktuelle Zeit mit GMT-Format in einem beliebigen Land? – Tirth

+0

Sicher ist es wichtig, es gibt 3 verschiedene "aktuelle Zeiten" in Australien. und jemand muss eine Entscheidung treffen, welche er verwenden soll. –