首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从knownTimeZoneNames中获取每个时区的GMT值

如何从knownTimeZoneNames中获取每个时区的GMT值
EN

Stack Overflow用户
提问于 2016-05-25 10:19:46
回答 2查看 567关注 0票数 1

我知道如何获得已知时区的列表:[NSTimeZone knownTimeZoneNames]

但此方法只返回时区名称(如“Africa/阿比让”)。

如何从该数组中获得每个已知时区的GMT值(如GMT+3GMT-7)?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-25 10:24:07

通常,为每个时区名称创建一个NSTimeZone实例,然后从每个实例中获取secondsFromGMT属性:

代码语言:javascript
复制
for (NSString *name in [NSTimeZone knownTimeZoneNames]) {
    NSTimeZone *tz = [NSTimeZone timeZoneWithName:name];
    NSInteger gmtOffset = tz.secondsFromGMT;
}

唯一悬而未决的问题将是从秒转换为小时或小时/分钟,这应该不会太困难。也许默认的[NSTimeZone description]会返回正确的信息?

票数 1
EN

Stack Overflow用户

发布于 2017-08-22 15:47:46

您还可以使用方法timeZoneForSecondsFromGMT

代码语言:javascript
复制
NSTimeZone *timeZone = [NSTimeZone timeZoneForSecondsFromGMT:secondsFromGMT];
NSMutableString *name = [NSMutableString stringWithString:timeZone.name];
if (! [name isEqualToString:@"GMT"])
{
    [name insertString:@":" atIndex:6];
}
return [NSString stringWithString:name];

输出将为@"GMT+03:00"。您不需要从几个小时和几分钟来构建它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37434185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档