UIDatePicker时间问题

时间:2015-07-09 22:21:41

标签: ios swift uidatepicker

我的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
}

enter image description here  enter image description here

1 个答案:

答案 0 :(得分:4)

您需要首先将初始日期调整为离散分钟数量。一旦你更改值,我确定你的日期选择器工作得很好,对吗?当您将日期选择器设置为日期(如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),但你明白了。