1

我有一个 TimeZone 作为 NSString 值,给出为“GMT-09:00”。

我想要的只是用这种格式设置我的 NSTimeZone 。我试过但无法做到这一点。这个时间可能每次都不同,所以我不能在方法中将它设置为静态

例如。我不能这样做——timeZoneForSecondsFromGMT:(-9*3600)。

另外,我可以将上述格式(GMT-09:00)转换为秒数吗?

编辑:我只想将时区设置为特定的 GMT 格式。它可以是任何东西,GMT-09:00、GMT+05:30 等。

如果它是一个静态值,我可以对 NSTimeZone 使用以下方法。

[formatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:(-9*3600)]];

但值“GMT-09:00”是一个 NSString。所以每次,我都必须打破字符串并获取小时和分钟的值。有没有更简单的方法?????

谢谢您的帮助!

4

2 回答 2

4

你试过这样的事情吗?

NSString *tzStr = @"GMT-09:00";
NSTimeZone *tz = [[NSTimeZone alloc] initWithName:tzStr];
NSLog(@"Tz: %@", tz);
NSLog(@"Offset: %d", [tz secondsFromGMT]);

// Tz: GMT-0900 (GMT-09:00) offset -32400
// Offset: -32400

也适用@"GMT+5:30"

// Tz: GMT+0530 (GMT+05:30) offset 19800

然后就用[formatter setTimeZone:tz];

于 2012-03-05T11:39:48.813 回答
0

这个对你有帮助。优化帮助

float offsetSecond = ([[NSTimeZone systemTimeZone] secondsFromGMT] / 3600.0);
于 2016-01-07T09:34:02.463 回答