【问题标题】:Custom NSDateFormatter.timeZone - Swift自定义 NSDateFormatter.timeZone - Swift
【发布时间】:2015-12-12 21:20:31
【问题描述】:

我目前正在使用以下格式创建时区:

    let ukTz = NSDateFormatter();
    ukTz.dateFormat = "HH:mm";
    ukTz.timeZone = NSTimeZone(name: "Europe/London")

我想在我的代码中创建一个类似的变量,但用于缅甸 (UTC +6:30)。缅甸似乎是这个时区唯一的国家,也没有NSTimeZone(name: "Asia/Yangon")。有没有办法通过指定“UTC+6.30”来做到这一点?

【问题讨论】:

标签: swift timezone nsdateformatter


【解决方案1】:

您可以创建具有给定 GMT 偏移量的时区:

let tz = NSTimeZone(name: "GMT+0630") // or
let tz = NSTimeZone(name: "UTC+0630") // or
let tz = NSTimeZone(forSecondsFromGMT: 6 * 3600 + 30 * 60)

但您可能正在寻找的是

let tz = NSTimeZone(name: "Asia/Rangoon")

(使用仰光的英文名称)。

【讨论】:

  • 我一直以为是仰光……干杯!
  • +1。仅供参考 - 虽然 Mynamar 现在固定在 UTC+06:30,但有 a few years during WW2 where Myanmar was on UTC+09:00,只有在使用 Asia/Rangoon 时才会反映出来。如果他们将来切换偏移量或决定实施 DST,这同样适用。其他国家已经这样做了,在世界各地很多次。因此,最好使用基于位置的标识符。
猜你喜欢
  • 1970-01-01
  • 2020-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多