swift - 带时间类型的日期选择器

标签 swift dateformatter nsdatepicker

时间选择器不允许我设置最大时间,我正在使用以下代码行:

    let formatter = DateFormatter()
    formatter.dateFormat = "hh:mm a"
    let locale = NSLocale(localeIdentifier: "en_US_POSIX")
    formatter.locale = locale as Locale

    timePicker.datePickerMode = .time


    let min = formatter.date(from: "08:00 AM") //createing mintime
    let max = formatter.date(from: "11:00 PM") //creating max time

    print(max)

    timePicker.minimumDate = min  //setting min time to picker
    timePicker.maximumDate = max  //setting max time to picker

    timePicker.minuteInterval = 30

最佳答案

使用以下代码设置最短和最长时间,希望对您有所帮助。

借助DateComponentsDate中设置小时和分钟,然后分配datePicker的最小值和最大值

let startHour: Int = 6
let endHour: Int = 23
let date1: NSDate = NSDate()
let gregorian: NSCalendar = NSCalendar(calendarIdentifier: NSCalendar.Identifier.gregorian)!
var components: DateComponents = gregorian.components(([.day, .month, .year]), from: date1 as Date)
components.hour = startHour
components.minute = 0
components.second = 0
let startDate: Date = gregorian.date(from: components)!
components.hour = endHour
components.minute = 0
components.second = 0
let endDate: Date = gregorian.date(from: components)!
timePicker.datePickerMode = .Time
timePicker.minimumDate = startDate
timePicker.maximumDate = endDate
timePicker.setDate(startDate, animated: true)
timePicker.reloadInputViews()

关于swift - 带时间类型的日期选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56273940/

相关文章:

ios - RealmSwift 与 Alamofire5

ios - DismissViewController swift

swift - 无法注册服务 com.apple.coreservices.lsuseractivity.simulatorsupport

swift - DateFormatter 中的内存泄漏

arrays - 按其他数组中值的顺序对数组进行排序

ios - swift : Map function found nil while unwrapping an Optional value

swift - 从 dateFormat 获取错误的日期

cocoa - NSDatePicker...CoreData 存储日期范围?

ios - UIDatePicker 中的最小和最大日期

ios - 即使以编程方式设置日期,NSDatePicker 也会返回默认日期