2015-07-09 53 views
2

我有一個問題,我的UIDatePicker:的UIDatePicker時間問題

當它第一次出現在視圖你會在截圖中看到,

中的UIDatePicker的初始值表示,今天下午3:00 ,但是如果我點擊完成按鈕,標籤顯示3:07(這是實際的時間)。 我希望標籤顯示的時間與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

回答

3

您需要首先調整初始日期離散微量。我相信你的日期選擇器工作得很好,一旦你改變了的值,對吧?當您將日期選擇器設置爲日期(如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),但你的想法。