You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现兼具日期与时间选择功能的UIDatePicker?

关于UIDatePicker同时选择日期和时间的问题解答

嗨,这个问题其实挺常见的,我来帮你理清楚~

一、为什么你觉得默认不支持?

其实iOS的UIDatePicker本身就支持同时选择日期和时间,只是需要设置正确的模式。早期版本的UIDatePicker可能默认是date或time单模式,但从iOS 2.0开始就提供了dateAndTime模式,只是可能你之前没配置对而已。

二、实现你需要的滚轮式日期时间选择器(和图中效果一致)

下面用Swift代码给你演示具体实现步骤:

  1. 创建并配置核心的UIDatePicker
// 初始化DatePicker实例
let datePicker = UIDatePicker()
// 设置模式为同时选择日期和时间
datePicker.datePickerMode = .dateAndTime
// 适配iOS 13.4+,设置为经典滚轮样式(和你图里的效果匹配)
if #available(iOS 13.4, *) {
    datePicker.preferredDatePickerStyle = .wheels
}
// 可选配置:设置时区、区域,让显示符合用户当地习惯
datePicker.timeZone = .current
datePicker.locale = .current
// 可选:设置分钟间隔,比如只显示5的倍数分钟
datePicker.minuteInterval = 5
  1. 添加到视图并完成布局
    把配置好的datePicker添加到你的页面视图中,用AutoLayout做布局示例:
datePicker.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(datePicker)
// 约束布局,让选择器居中显示
NSLayoutConstraint.activate([
    datePicker.centerXAnchor.constraint(equalTo: view.centerXAnchor),
    datePicker.centerYAnchor.constraint(equalTo: view.centerYAnchor),
    datePicker.widthAnchor.constraint(equalToConstant: 320)
])
  1. 获取用户选中的日期时间
    如果需要拿到用户选择的结果,直接通过datePicker.date获取Date对象,再转成你需要的字符串格式:
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy年MM月dd日 HH:mm"
let selectedDateTime = dateFormatter.string(from: datePicker.date)
print("用户选中的日期时间:\(selectedDateTime)")

三、额外小提示

  • iOS 14及以上还支持inline(内嵌式)和compact(紧凑型)样式,但你需要的滚轮式设置.wheels就完全匹配。
  • 如果需要自定义显示语言、星期格式等,调整locale属性即可,比如设置为Locale(identifier: "zh_CN")确保中文显示。

内容的提问来源于stack exchange,提问作者kiran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:19:22