그냥 NSDate에서 다 지원해주면 좋겠지만.. 안타깝게 그러진 않네요 -ㅁ-;
NSDate를 다른 형태의 데이터로 변환하는 방법을 정리 해 보았습니다.
1. NSDate to unix timestamp
NSDate의 timeIntervalSince1970를 이용하시면 됩니다.
예: 현재의 시간을 unix timestamp로 변환하기
int timestamp = [[NSDate date] timeIntervalSince1970];
2. unix timestamp to NSDate
NSDate의 dateWithTimeIntervalSince1970:를 이용하시면 됩니다.
예: 2009-06-26 10:51:39의 unix timestamp를 NSDate로 변환하기
NSDate *date = [NSDate dateWithTimeIntervalSince1970:1245981099];
3. NSDate to date component
이건 좀 복잡한데.. 년/월/일 시/분/초 를 구할 때 사용합니다. NSCalendar와 NSDateComponents를 이용하여 구합니다.
예: 2009-06-26 10:51:39의 unix timestamp로 NSDate객체 생성한 뒤 해당 객체를 년/월/일 시/분/초 로 분할하여 표시하기
NSDate *date; NSDateComponents *com; date = [NSDate dateWithTimeIntervalSince1970:1245980099]; com = [[NSCalendar currentCalendar] components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit) fromDate:date];
4. date component to NSDate
년/월/일 시/분/초 로 부터 NSDate객체를 생성할 때 사용합니다. 마찬가지로 NSCalendar를 이용합니다.
예: 2009-06-26 10:51:39 시간을 가리키는 NSDate객체 생성하기
NSDate *date; NSDateComponents *com; NSDateFormatter *formatter; com = [[NSDateComponents alloc] init]; [com setYear:2009]; [com setMonth:6]; [com setDay:26]; [com setHour:10]; [com setMinute:51]; [com setSecond:39]; date = [[NSCalendar currentCalendar] dateFromComponents:com]; formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; NSLog(@"%@", [formatter stringFromDate:date]); [formatter release]; [com release];
Posted by 장현준


