我想在UIDatePicker中只显示最少时间+12小时的时间。以下是我的代码:
- (void)willPresentActionSheet:(UIActionSheet *)actionSheet
{
NSLog(@"startTimeLabel %@", startTimeLabel);
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"HH:mm a"];
NSDate *minimumTime = [formatter dateFromString:startTimeLabel];
NSLog(@"minimumTime Formatted %@", minimumTime);
UIDatePicker *pickerView = [[[UIDatePicker alloc] init] initWithFrame:CGRectMake(0, 40, 320, 216)];
pickerView.datePickerMode = UIDatePickerModeTime;
[pickerView setMinimumDate:minimumTime];
[pickerView setMinuteInterval:15];
[pickerView setTag: kDatePickerTag1];
//Add picker to action sheet
[actionSheet addSubview:pickerView];
NSArray *subviews = [actionSheet subviews];
}
这是日志:
2013-07-17 18:13:37.682 MeetingTime[12294:c07] startTimeLabel 6:15 PM
2013-07-17 18:13:37.683 MeetingTime[12294:c07] minimumTime Formatted 2000-01-01 20:15:00 +0000
Q1。为什么startTimeLabel出现在下午6:15但格式化后它是20:15:00 + 0000。不应该是18:15吗?我的格式错了吗?我不需要约会,我可以摆脱它吗?
Q2。我希望选择器从startTimeLabel获得最小时间并将其用作minimumTime。是否有可能在最短时间之前没有显示任何时间?即如果startTimeLabel是下午6:15那么UIPicker中的唯一选项是下午6:30 + 12小时?我怎么能做到这一点?谢谢。
答案 0 :(得分:0)
对于Q1,已经回答here。
对于Q2,您可以评估startTimeLabel
的值并为其添加12小时,然后按UIDatePicker
方法将其设置为setMinimumDate
的最小日期。