首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有tzID GMT-8的时区名称吗?

有tzID GMT-8的时区名称吗?
EN

Stack Overflow用户
提问于 2016-12-14 17:24:43
回答 2查看 244关注 0票数 1
  • 我们的一个用户住在美国,他去了印度。
  • 他的设备timeZone被设置在美国/洛杉矶。
  • 在下面的代码中,self.tzID设置为PST NSTimeZone *timeZone = NSTimeZone localTimeZone;self.tzID = timeZone缩写;
  • 然后,我可以使用代码正确地将TZName作为America/Los_Angeles获得: NSDictionary *tzDict = NSTimeZone abbreviationDictionary;NSString *tzName = tzDict objectForKey:self.tzID;

问题是,当他是印度的时候,tzID被设置为GMT-8,而tzDict没有任何GMT-8来制造tzName nil

  • 是否有tzID GMT-8的时区名称?
  • 如果是这样的话,我如何才能获得tzName呢?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-14 18:37:25

你应该小心使用缩略语在字典中查找名字。问题是缩略语含糊不清(相同的缩写在不同的地方有不同的含义)。更糟糕的是,您不能仅仅查找GMT-8是什么,因为目前有七个GMT-8,所以您无法知道用户的意图。

因此,您真的不应该在查找时使用缩写。使用timeZone.name (或者,在Swift 3中使用timeZone.identifier),而不是使用abbreviation

票数 0
EN

Stack Overflow用户

发布于 2016-12-14 18:28:14

获取时区名称的方法是询问时区的本地化名称。例如:

代码语言:javascript
复制
NSString *name = [timeZone localizedName:NSTimeZoneNameStyleGeneric locale:nil];

这将返回时区的正确本地化名称。根据您的需要,您可以使用不同的样式,包括“标准”和“短标准”,“夏令节约”等。

如果您需要区分标准和DST,请使用isDaylightSavingTimeForDate:来确定使用哪一个。

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

https://stackoverflow.com/questions/41148593

复制
相关文章

相似问题

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