NSDate NSDateComponents
Dev/iOS 2011. 10. 20. 14:33NSDate에서 직접 변경은 불가능.
다음과 같은 방법으로 변경 해야한다.
NSCalendar * cal = [NSCalendar currentCalendar];
NSCalendarUnit unit = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit;
NSDateComponents * comps = [cal components:unit fromDate:birthDate];
NSDateComponents * newComps = [cal components:unit fromDate:time];
// 날자 부분을 변경해야 할 경우.
[comps setYear:newComps.year];
[comps setMonth:newComps.month];
[comps setDay:newComps.day];
// 시간 부분을 변경해야 할 경우.
[comps setHour:newComps.hour];
[comps setMinute:newComps.minute];
[self setBirthDate:[cal dateFromComponents:comps]];
[self.tableView reloadData];
[comps release];
}
[newComps release];
[cal release];
* NSDate로 부터 year, month, day 에 해당하는 int값 얻기.
NSDate *today = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[dateFormatter setLocale:locale];
[locale release];
// Get year
[dateFormatter setDateFormat:@"yyyy"];
int year = [[dateFormatter stringFromDate:today] intValue];
// Get Month
[dateFormatter setDateFormat:@"MM"];
int month = [[dateFormatter stringFromDate:today] intValue];
// Get Day
[dateFormatter setDateFormat:@"dd"];
int day = [[dateFormatter stringFromDate:today] intValue];
[dateFormatter release];
------------
출처 : Bingsoo blog ( http://bingsoo.com/blog/?p=3708 )
'Dev > iOS' 카테고리의 다른 글
tapku 달력 라이브러리 튜토리얼. (0) | 2011.10.22 |
---|---|
xcode Update 후 빌드가 오류. (0) | 2011.10.21 |
테이블 화면이 안나타는 현상. (0) | 2011.10.20 |
NSDate 데이터 조작 방법. (0) | 2011.10.18 |
[링크]OpenCoverflow (0) | 2011.10.11 |