显示本地时区而非GMT偏移

时间:2016-10-29 15:45:28

标签: swift swift3 xcode8.1

我在夏令时期间在英格兰(在当地称为BST"英国夏令时")。我希望我的应用程序显示时间,并带有标识BST时区的后缀(例如BST 12:45)。下面的代码应该这样做,但显示GMT偏移:

let formatter = DateFormatter()
formatter.dateFormat = "HH:mm z"
formatter.timeZone = TimeZone(identifier: "Europe/London")
print(formatter.string(from: Date()))

显示:12:45 GMT+1

原因可能是因为"系统"认为GMT+1是正确的缩写。例如:

dump(TimeZone(identifier: "Europe/London"))

打印以下内容:

▿ Optional(Europe/London (current))
  ▿ some: Europe/London (current)
    - identifier: "Europe/London"
    - kind: "current"
    ▿ abbreviation: Optional("GMT+1")
      - some: "GMT+1"
    - secondsFromGMT: 3600
    - isDaylightSavingTime: true

问题:是否有一种形式的时区标识符可以正确地生成" BST"作为英国夏令时的正确缩写?

0 个答案:

没有答案