Swift如何修改UIDatePicker用户选中日期的时间为上午8点?
实现方案
直接通过日历组件拆解选中日期的年月日字段,手动覆盖小时值即可,示例代码如下(Swift环境):
// 读取UIDatePicker的用户选中日期 let pickedDate = yourDatePicker.date // 用当前日历拆解出年月日组件,过滤掉原有时间字段 let calendar = Calendar.current var dateComps = calendar.dateComponents([.year, .month, .day], from: pickedDate) // 仅修改小时为8点,分钟秒按需置为0避免冗余 dateComps.hour = 8 dateComps.minute = 0 dateComps.second = 0 // 可选:生成最终触发通知的Date对象,调度通知也可直接传入dateComps guard let notifyDate = calendar.date(from: dateComps) else { // 日期无效的异常处理逻辑 return }
注意事项
- 若要避免时区偏差导致的通知时间错误,可手动给
dateComps指定时区:dateComps.timeZone = .current - 若你的UIDatePicker仅用来选日期,建议将模式设置为
.date,避免拆解组件时带入多余的时分秒数据
内容的提问来源于stack exchange,提问作者Vj me
相关产品推荐
相关产品推荐

