Catalyst datePicker 显示系统时间而不是 utc 时间(datePicker 时区已设置为 UTC)

Catalyst datePicker shows system time instead of utc time (the datePicker timezone has been set to UTC)

我在使用 Catalyst 的项目中遇到了 datePicker 问题。

我这样配置:timePicker.timeZone = TimeZone(secondsFromGMT: 0) 为了显示 UTC 时间。

在 iOS 上它表现正确,但在 Catalyst 上它显示系统时区。返回的日期作为 UTC 时间正确运行,但未显示。

有人知道如何解决这个问题吗?

谢谢!

这是 DatePicker 的 Mac Catalyst 实现的错误。您可以使用此解决方法通过将 DatePicker.date 设置为偏移时间来显示 GMT 时间:

let date = Date()
let diffSeconds = -TimeZone.current.secondsFromGMT(for: date)
let gmtDate = date.addingTimeInterval(TimeInterval(diffSeconds))
datePicker.date = gmtDate

并且不要忘记在使用前将日期转换回您所在的时区。