【问题标题】:Catalyst datePicker shows system time instead of utc time (the datePicker timezone has been set to UTC)Catalyst datePicker 显示系统时间而不是 utc 时间(datePicker 时区已设置为 UTC)
【发布时间】:2023-04-02 04:15:01
【问题描述】:
我在使用 Catalyst 的项目中遇到了 datePicker 问题。
我这样配置它:timePicker.timeZone = TimeZone(secondsFromGMT: 0) 以显示 UTC 时间。
在 iOS 上它运行正常,但在 Catalyst 上它显示的是系统时区。返回的日期与 UTC 时间一样正确,但未显示。
有人知道如何解决这个问题吗?
谢谢!
【问题讨论】:
标签:
swift
datepicker
mac-catalyst
【解决方案1】:
这是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
并且不要忘记在使用之前将日期转换回您的时区。