我正在尝试打印日期和时间,我希望
String
表示包含 UTC 偏移量。
这似乎适用于 BST 时区的日期和时间,但是当日期和时间位于 GMT 时区时,String
不包含偏移量,而是包含“Z”。
我使用的代码是:
let formatter = ISO8601DateFormatter()
formatter.timeZone = TimeZone(identifier: timeZone). // timeZone = "Europe/London"
formatter.formatOptions = [.withInternetDateTime, .withTimeZone]
formatter.string(from: date). // date is a Date object
输出如下:
2023-10-16T10:00:00+01:00
获取 BST 日期和时间。2023-11-01T20:42:59Z
GMT 日期和时间
有没有办法让 GMT 日期和时间看起来像
2023-11-01T20:42:59+00:00
?
来自 ISO 8601 的维基百科页面:
如果时间是 UTC,则在时间后面直接添加 Z,不加空格。 Z 是零 UTC 偏移的区域指示符。
因此输出显然是正确的,因为 GMT 是零偏移的时区