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
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";
}