如何在日期选择器上设置特定的时间?



我使用日期选择器和选定的datePicker模式作为时间。当我加载日期选择器时,它显示当前时间。但是我想把默认时间设为下午5点。

我试过下面的方法,但对我不起作用。

let dateFormatter = DateFormatter()
dateFormatter.dateFormat =  "HH:mm"
dateFormatter.timeZone = .current
if let date = dateFormatter.date(from: "17:00") {
datePicker.date = date
}

请帮我将时间默认为5:00PM。谢谢你。

一种可能的解决方案是获取当前日期并相应地设置小时、分和秒

let fivePM = Calendar.current.date(bySettingHour: 17, minute: 0, second: 0, of: Date())!
datePicker.date = fivePM
另一种方法是设置countDownDuration属性
datePicker.countDownDuration = 61200 // 17 * 3600

另一个可能的答案是:

let cal = Calendar.current
let timeZone: TimeZone = .current
var dateComp = cal.dateComponents(in: timeZone, from: Date())
(dateComp.hour, dateComp.minute, dateComp.second, dateComp.nanosecond) = (17, 0, 0, 0)
let fivePM = cal.date(from: dateComp)
datePicker.date = fivePM

使用此技术还可以获得另一个时区的下午5点时间。

请注意,在Xcode中调试时,Xcode会在控制台显示GMT时区的所有日期。

最新更新