如何在日期选择器上设置特定时间?
Posted
技术标签:
【中文标题】如何在日期选择器上设置特定时间?【英文标题】:How to set specific time on date picker? 【发布时间】:2021-06-06 10:33:08 【问题描述】:我正在使用日期选择器并选择 datePicker 模式作为时间。当我加载日期选择器时,它显示的是当前时间。但我想始终设置默认时间 5:00 PM。
我尝试了以下方法,但对我不起作用。
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "HH:mm"
dateFormatter.timeZone = .current
if let date = dateFormatter.date(from: "17:00")
datePicker.date = date
请帮助我始终默认为下午 5:00。谢谢。
【问题讨论】:
有什么问题?什么节目? 从了解/发现问题开始。date
的值是多少?这是(在我的时区):2000-01-01 16:00:00 +0000
,你看到年、月、日了吗?他们是你想到的那个吗?您是否希望获得 17h00,但在当天,在特定日期?然后,看看如何做到这一点。
【参考方案1】:
一种可能的解决方案是获取当前日期并相应地设置小时、分钟和秒
let fivePM = Calendar.current.date(bySettingHour: 17, minute: 0, second: 0, of: Date())!
datePicker.date = fivePM
另一种方法是设置countDownDuration
属性
datePicker.countDownDuration = 61200 // 17 * 3600
【讨论】:
【参考方案2】:另一个可能的答案是:
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 时区的所有日期。
【讨论】:
以上是关于如何在日期选择器上设置特定时间?的主要内容,如果未能解决你的问题,请参考以下文章