iPhone - 如何获得时区偏移?

时间:2011-08-04 10:41:33

标签: iphone nstimezone

我们有NSTimeZone类,可以提供有关时区的更多信息。 但我想只得到时间的偏移。例如:+ 05.30是Inida的偏移量 换句话说,参考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 个答案:

答案 0 :(得分:5)

我认为您可以使用NSDate和NSDateFormatter类来获取时区偏移量。你可以通过以下方式完成。

NSDate *date = [NSDate date];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc]
initWithDateFormat:@"zzz" allowNaturalLanguage:NO];
NSString *zoneOffset = [dateFormat stringFromDate:date];

所以现在在zoneOffset中你将获得所需的东西。