iPhone - 如何获取时区偏移量?

4
我们有NSTimeZone类来告诉我们更多关于时区的信息。但我只想获得时间偏移量。例如:+05.30是印度的偏移量,换句话说,相对于UTC的时间偏移量。
以下代码的问题是在4.3模拟器上会崩溃,而在4.2模拟器上运行正常。因为4.2模拟器是以GMT为参考输出,而4.3模拟器则是以IST为参考。
NSString* tzDescription = [[NSTimeZone systemTimeZone] description];
NSArray* tzArray = [tzDescription componentsSeparatedByString:@"GMT"];
NSString* gmtStr = [[tzArray objectAtIndex:1] substringToIndex:6];

我找不到一个通用的解决方案。
1个回答

5
我认为你可以使用NSDate和NSDateFormatter类来获取时区偏移量。你可以按照以下方式完成。
我认为您可以使用NSDate和NSDateFormatter类来获取时区偏移量。 您可以按照以下方式操作。
NSDate *date = [NSDate date];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc]
initWithDateFormat:@"zzz" allowNaturalLanguage:NO];
NSString *zoneOffset = [dateFormat stringFromDate:date];

现在,在zoneOffset中您将获得所需的内容。


1
不错。当不在ARC时,不要忘记释放dateFormat。 - Or Arbel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接