UIDatePicker:最短日期

时间:2013-07-18 02:33:24

标签: ios uidatepicker datetime-format

我想在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小时?我怎么能做到这一点?谢谢。

1 个答案:

答案 0 :(得分:0)

对于Q1,已经回答here

对于Q2,您可以评估startTimeLabel的值并为其添加12小时,然后按UIDatePicker方法将其设置为setMinimumDate的最小日期。