iPhone - 如何获取时区偏移?

发布于 2024-11-27 21:28:43 字数 446 浏览 1 评论 0原文

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

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

We have NSTimeZone class that tells more about the time zone.
But I want to get only the offset of the time. For example: +05.30 is offset for Inida
In other words offset of time with reference to UTC.

One problem with following code is that it crashes with 4.3 simulator and works fine with 4.2 simulator. Because 4.2 simulator is giving output with reference to GMT and 4.3 simulator with reference to IST

NSString* tzDescription = [[NSTimeZone systemTimeZone] description];
NSArray* tzArray = [tzDescription componentsSeparatedByString:@"GMT"];
NSString* gmtStr = [[tzArray objectAtIndex:1] substringToIndex:6];

I couldn't find a solution that is generic.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

若无相欠,怎会相见 2024-12-04 21:28:43

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

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

所以现在在 zoneOffset 中你将拥有你需要的东西。

I think you can use NSDate and NSDateFormatter class to get the time zone offset. You can do it in following way.

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

So in zoneOffset now you will be having your required thing.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文