Ios UIDatePicker:最小日期

Ios UIDatePicker:最小日期,ios,uidatepicker,datetime-format,Ios,Uidatepicker,Datetime Format,我只想在UIDatePicker中显示最短时间+12小时的时间。下面是我的代码: - (void)willPresentActionSheet:(UIActionSheet *)actionSheet { NSLog(@"startTimeLabel %@", startTimeLabel); NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"HH

我只想在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
问题1。为什么startTimeLabel在下午6:15出现,但在格式化之后是20:15:00+0000。不是18点15分吗?我的格式错了吗?我不需要约会,我能摆脱它吗


问题2。我希望选取者从startTimeLabel获得最短时间,并将其用作最短时间。是否可以不显示最短时间之前的任何时间?i、 e.如果startTimeLabel为下午6:15,则UIPicker中的唯一选项为下午6:30+12小时?我怎样才能做到这一点?谢谢

对于Q1,它已经得到了回答


对于Q2,您可以计算
startTimeLabel
的值并向其添加12小时,然后通过
setMinimumDate
方法将其设置为
UIDatePicker
的最小日期。

Q1。你们的时区是什么?我们在美国太平洋标准时间(PST)。但我想在任何时区都可以使用该应用程序。谢谢。对于Q2:如果setMinimumDate时间是4:00PM,UIPicker能否仅显示4:00PM及之后的时间?我正试图用上面的代码做到这一点,但是,UIPicker显示了完整的24小时。基本上,我不希望UIPicker在minimumDate之前显示任何时间。当用户选择日期/时间时,您可能需要进行额外检查。我不确定是否在跟踪您。我让用户选择一个时间,我存储在一个变量startTimeVariable中。然后我将其转换为NSDate格式,并将其存储在minimumDate变量中。同样,问题是我能不能让UIPicker在minimumDate中存储的时间之前不显示时间?如果用户选择4:00PM,UIPicker将仅在4:00PM之后显示时间。如果是,代码是什么?我上面的代码不起作用。谢谢