2013-07-18 146 views
1

我想僅在UIDatePicker中顯示最短時間+12小時的時間。下面是我的代碼:UIDatePicker:最短日期

- (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 PM,但在格式化之後是20:15:00 + 0000。難道不是18點15分?我的格式錯了嗎?我不需要日期,我可以擺脫它嗎? Q2302。我希望picker從startTimeLabel獲得最短時間,並將其用作minimumTime。是否有可能在最短時間之前不顯示任何時間?即如果startTimeLabel是6:15 PM,那麼UIPicker中的唯一選項將是6:30 PM + 12 Hours?我怎樣才能做到這一點?謝謝。

+0

Q1。你的時區是什麼? – Raptor

+0

我們在美國太平洋標準時間(PST)。但我想申請在任何時區工作。 – user1107173

回答

0

對於Q1,已經回答了here

對於Q2,您可以評估startTimeLabel的值,並將其添加12小時,然後將其設置爲UIDatePicker,setMinimumDate方法的最小日期。

+0

謝謝。對於Q2:如果setMinimumDate時間是下午4:00,UIPicker是否只能顯示時間下午4:00以後?我試圖用上面的代碼來做到這一點,但是,UIPicker顯示全部24小時。基本上,我不希望UIPicker在minimumDate之前顯示任何時間。 – user1107173

+0

當用戶選擇日期/時間時,您可能不得不做額外的檢查。 – Raptor

+0

我不確定我是否關注你。我有用戶選擇一個時間,我存儲在一個變量startTimeVariable。然後我將它轉換爲NSDate格式並將其存儲在minimumDate變量中。同樣,問題是我可以在UIPicker沒有顯示存儲在minimumDate中的時間之前顯示時間嗎?如果用戶選擇了下午4點,UIPicker將只在下午4點以後顯示時間。如果是,那麼代碼是什麼?我上面的代碼不起作用。謝謝。 – user1107173