我有一个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。因此,每次,我都必须打破字符串并获取小时和分钟的值。是否有更简单的方法?????
感谢您的帮助!
答案 0 :(得分: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];
答案 1 :(得分:0)
这个对你很有帮助。优化帮助
float offsetSecond = ([[NSTimeZone systemTimeZone] secondsFromGMT] / 3600.0);