NSDate 변수가 있는데 시간 만 변경하려고합니다 (날짜는 변경하면 안됨). 가능한가?어떻게 NSDate 변수에서 시간 만 설정할 수 있습니까?
예 : DatePicker에서 날짜에 사용자 선택 날짜 간격 (가 시작 날짜 만약 내가 23시 59분 59초으로 시간을 설정, 그것은 종료 날짜 인 경우 00:00:00으로 시간을 설정하려는)
도와 주셔서 감사합니다.
안부, Alex.
NSDate 변수가 있는데 시간 만 변경하려고합니다 (날짜는 변경하면 안됨). 가능한가?어떻게 NSDate 변수에서 시간 만 설정할 수 있습니까?
예 : DatePicker에서 날짜에 사용자 선택 날짜 간격 (가 시작 날짜 만약 내가 23시 59분 59초으로 시간을 설정, 그것은 종료 날짜 인 경우 00:00:00으로 시간을 설정하려는)
도와 주셔서 감사합니다.
안부, Alex.
NSDateComponents을 사용하고 싶습니다.
NSDate *oldDate = datePicker.date; // Or however you get it.
unsigned unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay;
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *comps = [calendar components:unitFlags fromDate:oldDate];
comps.hour = 23;
comps.minute = 59;
comps.second = 59;
NSDate *newDate = [calendar dateFromComponents:comps];
NSDate
개체는 변경할 수 없습니다.
NSDate
개체를 새로 만들 수 있습니다. - (id)dateByAddingTimeInterval:(NSTimeInterval)seconds
메소드를 살펴보십시오.
NSDate *newDate = [endDate dateByAddingTimeInterval:24.0f * 60.0f * 60.0f - 1.0f];
시간을 추적하기 만하면 NSDate 또는 NSTimeInterval을 사용하지 않습니다. 대신 NSinteger를 사용하고 "군대"시간, 즉 08:30 = 8:30 AM, 14:15 = 2:15 PM을 저장합니다.
수 없습니다. NSDate 객체는 기본적으로 참조 날짜 이후의 밀리 초 수인 단일 값을 포함합니다. 그러나 NSCalendar와 NSDateComponents를 사용하여 개별 구성 요소를 개별 *처럼 조작 할 수 있습니다. –