我在夏令时(当地称为 BST“英国夏令时”)期间在英格兰。我希望我的应用程序显示带有标识 BST 时区的后缀的时间(例如 12:45 BST)。下面的代码应该这样做,但会显示 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
”作为英国夏令时的正确缩写?