【问题标题】:timezoneWithAbbreviation:@"CST" return America/Chicago (CDT) valuetimezoneWithAbbreviation:@"CST" 返回美国/芝加哥 (CDT) 值
【发布时间】:2017-03-07 11:55:55
【问题描述】:

我想查找“加拿大萨斯喀彻温省萨斯卡通”的时区(时区为 CST),因此我在以下方法中使用缩写 CST:

var timezone = NSTimeZone.init(abbreviation: "CST")
print(timezone)

输出:

美国/芝加哥 (CDT) 偏移量 -18000(日光)

为什么我在通过 CST 时会获得 CDT 值?

谁能帮助我如何使用 timezoneWithAbbreviation: 方法获得正确的值,即“加拿大萨斯喀彻温省萨斯卡通”的 CST 缩写?

【问题讨论】:

  • 芝加哥同时使用 CST 和 CDT... 就像其他各种时区一样。基本上,不要使用区域缩写......它们非常模棱两可:(
  • @JonSkeet,我认为问题不是关于芝加哥,而是关于萨斯喀彻温省。 OP,请阅读:en.wikipedia.org/wiki/Time_in_Saskatchewan
  • @user28434:OP 在询问 CST 时问他们为什么选择芝加哥 - 我指出芝加哥同时使用 CST 和 CDT,所以这不是一个不合理的结果。
  • 谢谢大家最快的反应,所以结论是“timezoneWithAbbreviation:”方法不应该一直使用,对吧?
  • @PragneshPatel:documentation 声明它是模棱两可的,不鼓励您使用它。

标签: ios timezone


【解决方案1】:

您可以尝试使用location tzname(对于TimeZone use this)而不是abbreviation 来初始化您的NSTimeZone

对于Saskatchewan,它将是"Canada/East-Saskatchewan""Canada/Saskatchewan""America/Regina"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-08
    • 2011-06-12
    • 2021-10-21
    • 1970-01-01
    相关资源
    最近更新 更多