4

我们有 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];

我找不到通用的解决方案。

4

1 回答 1

5

我认为您可以使用 NSDate 和 NSDateFormatter 类来获取时区偏移量。您可以通过以下方式进行操作。

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

因此,现在在 zoneOffset 中,您将拥有所需的东西。

于 2011-08-04T10:54:53.647 回答