我想显示任何国家/地区的当前时间。假设我想了解美国在澳大利亚的当前时间,或者我想查看一下南非的英格兰当前时间,那么我如何获取当前的国家时间?为此,我写了一个代码,但我没有工作,
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];
上述代码没有给我正确的时间。
由于
答案 0 :(得分:6)
没有美国或澳大利亚这样的时间。 你必须使用正确的时区,美国大陆有4个,澳大利亚有3个不同的时区。
要获得墨尔本,柏林和洛杉矶的当前时间(字符串),您可以使用以下代码:
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);
您更改的区域设置会影响格式。例如,en_US语言环境中melbourne中的当前时间为November 18, 2010 9:14:28 PM GMT+11:00
,但在de_DE中为18. November 2010 21:14:28 GMT+11:00