UIDatePicker 时间问题

UIDatePicker Time Issues

我的 UIDatePicker 有问题:

当它首次出现在视图中时,如您在屏幕截图中所见,

UIDatePicker 的初始值表示今天 3:00 下午,但如果我单击完成按钮,标签会显示 3:07(这是实际时间)。 我想让 Label 和 UIDatePicker 同时显示。

这是我的代码:

override func viewDidLoad() {
super.viewDidLoad()
   myDatePicker.minuteInterval = 15
}

@IBAction func datePickerAction(sender: AnyObject) {
    var dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "dd-MM-yyyy HH:mm"
    var strDate = dateFormatter.stringFromDate(myDatePicker.date)
    self.selectedDate.text = strDate
}

您需要首先将初始日期调整为离散的分钟数。我相信一旦 更改 值,您的日期选择器就可以正常工作,对吧?当您将日期选择器设置为日期(如 3:07)但日期选择器设置为仅显示 15 分钟的增量时,它会显示 3:00,但设置的日期仍为 3:07 ].

let allUnits = NSCalendarUnit(rawValue: UInt.max)
let components = NSCalendar.currentCalendar().components(allUnits, fromDate: NSDate())

var minute = components.minute
minute = (minute / 15) * 15
components.minute = minute

let datePickerDate = NSCalendar.currentCalendar().dateFromComponents(components)

这总是向下舍入分钟(虽然如果 minute % 15 > 7 你可能想向上舍入,然后考虑向上舍入到 60),但你明白了。