我有一个UIDatePicker,我将timezone
设置为NSTimeZone(forSecondsFromGMT: seconds)
。但由于某种原因,第一次设置新日期时,UIDatePicker上的时间被禁用,但在我将模式切换回.date
后,它再次起作用。
我怎样才能让这个一直工作?如果我没有设置timezone
时间永远不会被禁用,但我需要设置时区。
这是我要设置的代码,newDate是NSDate,调整是秒。
self.timePicker.timeZone = NSTimeZone(forSecondsFromGMT: adjustment)
self.timePicker.setDate(newDate, animated: false)
答案 0 :(得分:1)
我遇到了同样的问题,看起来是因为使用的时区不是当前时区,或是选择器上日历设置的时区。从UIDatePicker.h
获得open var timeZone:TimeZone? //默认为nil。使用日历中的当前时区或时区
通过在选择器上设置日历然后设置时区来修复。
let cal = Calendar(identifier: .gregorian)
cal.timeZone = TimeZone(identifier: "PST")
self.timePicker.calendar = cal
self.timePicker.timeZone = cal.timeZone