2016-08-01 2 views
0

UIDatepickerView에 최대 날짜를 오늘 23:59 pm으로 설정하려면 어떻게합니까? 나는이uidatepickerview에서 최대 날짜를 오늘 23:59로 설정하는 방법은 무엇입니까?

 datePicker.maximumDate = [NSDate date]; 

같은 시도했지만 작동하지 않습니다. 어떻게해야합니까? 당신이 좋아하는 뭔가를 할 수

+0

당신이 만드는'NSDateComponents'을 사용할 수 있습니다 특정 날짜. – Larme

+0

시간을 기준으로 날짜를 나타내는 'NSDate'를 새로 작성해야합니다. 23:59 – rckoenes

답변

2

,

NSDateFormatter *df = [[NSDateFormatter alloc]init]; 

[df setDateFormat:@"yyyy-MM-dd"]; 

NSDate *currentDate = [NSDate date]; 

NSString *currentDateStr = [[df stringFromDate:currentDate] stringByAppendingString:@" 23:59"]; 

[df setDateFormat:@"yyyy-MM-dd HH:mm"]; 

NSDate *maxDate = [df dateFromString:currentDateStr]; 

NSLog(@"max date : %@",maxDate); 

NSLog(@"max date str : %@",[df stringFromDate:maxDate]); 

yourDatePicker.maximumDate = maxDate; 

업데이트 :

NSDateComponents를 사용하는 또 다른 방법을 @droppy에 의해 제안,

NSDateComponents *dateComponents = [[NSCalendar currentCalendar] components: NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear fromDate:[NSDate date]]; 
NSInteger day = [dateComponents day]; 
NSInteger month = [dateComponents month]; 
NSInteger year = [dateComponents year]; 
dateComponents.hour = 23; 
dateComponents.minute = 59; 

NSLog(@"%ld : %ld : %ld",(long)day,(long)month,(long)year); 

NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; 
NSDate *resultDate = [gregorianCalendar dateFromComponents:dateComponents]; 

NSDateFormatter *df = [[NSDateFormatter alloc]init]; 
[df setDateFormat:@"yyyy-MM-dd HH:mm"]; 

NSLog(@"result date : %@",resultDate); 
NSLog(@"result date string : %@",[df stringFromDate:resultDate]); 

yourDatePicker.maximumDate = resultDate; 
+1

끔찍한 방법입니다. – Droppy

+1

@Droppy : 더 좋은 아이디어가 있다면 다른 접근법을 제안 할 수 있습니다 !! – Lion

+0

네, NSDateComponents를 사용합니다. – Droppy

관련 문제