【发布时间】:2022-11-01 22:54:22
【问题描述】:
我有以下操场代码:
let dateFormatter = ISO8601DateFormatter()
let zurichTimeZone = TimeZone(identifier: "Europe/Zurich")
dateFormatter.timeZone = zurichTimeZone
// dateFormatter.timeZone = .init(abbreviation: "GMT+1:00")
// prints timezone +1
print(dateFormatter.string(from: Date(timeIntervalSince1970: TimeInterval(100400))))
// prints timezone +2
print(dateFormatter.string(from: Date(timeIntervalSince1970: TimeInterval(1665957700))))
第一个输出是“1970-01-02T04:53:20+01:00”第二个输出是“2022-10-17T00:01:40+02:00”.为什么 GMT 值会发生变化?如果使用“欧洲/加里宁格勒”作为标识符,我会得到+3从第一和+2从第二张印刷品开始。当我设置时区时,问题不会出现“dateFormatter.timeZone = .init(缩写:“GMT+1:00”)”.我在使用时也找不到这种行为“太平洋/关岛”.
【问题讨论】: