UIDatePicker in UIDatePickerModeCountDownTimer mode: how to get/set the hours and minutes via code?

How to get/set the hours and minutes via code from a UIDatePicker in UIDatePickerModeCountDownTimer mode?

The situation:

  • Add a Done button within a pop-up datePickerView in Swift?
  • Converting NSDate from a calendar to another
  • UIDatePicker Cutting Off Text & Not Displaying Days
  • Setting frame to Date picker in iOS7
  • Set text color and font for UIDatePicker in iOS8/Swift
  • Swift Accessing year from UIDatePicker
    • I have an interface in that a user selects just hours and minutes. Then, he saves the information (so, I have to get the hours and minutes from UIDatePicker via code to save in a DB).

    • When the user is editing the information saved previously, I want to start the interface with the saved hours/minutes (so, I have to set the UIDatePicker hours and minutes via code with values from DB).

    How do I do that with the UIDatePicker in UIDatePickerModeCountDownTimer mode?

    Thanks in advance.

    Solutions Collect From Internet About “UIDatePicker in UIDatePickerModeCountDownTimer mode: how to get/set the hours and minutes via code?”

    You have to use the countDownDuration property in UIDatePicker when the date picker mode is set to UIDatePickerModeCountDownTimer.

    The countdown duration is in seconds, so you can calculate that from a NSDate as follows (to test it just drop it into the viewDidLoad of any UIViewController):

    // Create a new date with the current time
    NSDate *date = [NSDate new];
    // Split up the date components
    NSDateComponents *time = [[NSCalendar currentCalendar] 
                                components:NSHourCalendarUnit | NSMinuteCalendarUnit 
                                fromDate:date];
    NSInteger seconds = ([time hour] * 60 * 60) + ([time minute] * 60);
    
    UIDatePicker *picker = [UIDatePicker new];
    [picker setDatePickerMode:UIDatePickerModeCountDownTimer];
    [picker setCountDownDuration:seconds];
    [[self view] addSubview:picker];
    

    So if the current time is 17:28, the UIDatePicker will show “17 hours 28 mins”. Simly replace the NSDate with the one you get from the DB and you should be sorted 🙂