How to set Minimum time to appear as default in UIDatepicker everytime

前端 未结 5 697

In Datepicker i have set Min and Max time where uidatepicker can scroll for example i have set 3:00PM as minimum time and 8:00PM as maximum time , when i run the app i want

5条回答
  •  无人及你
    2020-12-11 13:12

    datePickerObj = [[UIDatePicker alloc] initWithFrame:CGRectMake(10, 100, 300, 160)];
    datePickerObj.datePickerMode = UIDatePickerModeTime;
    datePickerObj.backgroundColor = [UIColor clearColor];
    [datePickerObj addTarget:self action:@selector(onDatePickerValueChanged:) forControlEvents:UIControlEventValueChanged];
    

    Pass String into method and format to date...

    -(void)Set_MinimumDate_ToDatePicker:(NSString*)Time //  "start_time" = "3:00PM";
    {
        NSDateFormatter *dformat = [[NSDateFormatter alloc]init];
        [dformat setDateFormat:@"hh:mma"];
    
        [datePickerObj setMinimumDate:[dformat dateFromString:Time]];
        [datePickerObj setDate:[dformat dateFromString:Time] animated:YES];
        [datePickerObj reloadInputViews];
    }
    

    While change the Picker, it convert time to UTC+00:00, But it displays time to your time Zone eg. India, it add UTC+05:30 to the Time. If any TimeZone problem set TimeZone to the NSDateFormatter.

    -(void)onDatePickerValueChanged:(UIDatePicker *)datePicker
    {
        NSDateFormatter *dformat = [[NSDateFormatter alloc]init];
        [dformat setDateFormat:@"hh:mm a"];
    
        NSLog(@"%@",datePicker.date); //  2000-01-01 11:30:00 +0000
        [newStartBtn setTitle:[dformat stringFromDate:datePicker.date] forState:UIControlStateNormal]; 
        //"05:00 PM";
     }
    

提交回复
热议问题