2011년 12월 28일 수요일

[iOS] NSDate에서 날짜와 시간을 알아내기

NSDate는 날짜와 시간을 명기하는 클래스 임에도 불구하고 자체적으로 해당 년/월/일/시간 등의 정보를 알려주는 기능이 없다. 다른 심플한 스크립트 언어에 익숙하다면 이해가 안 될 정도로 NSDate는 좀 차별적이다.

어쨌든 일/시 정보를 알아올 수 있다. NSCalendar와 NSDateComponent와 연계하면 가능하다.
NSDate* date = [NSDate date];

NSCalendar* calendar = [NSCalendar currentCalendar];
NSDateComponents* components = [calendar components:NSYearCalendarUnit | 
                                                    NSMonthCalendarUnit | 
                                                    NSDayCalendarUnit | 
                                                    NSHourCalendarUnit | 
                                                    NSMinuteCalendarUnit | 
                                                    NSSecondCalendarUnit fromDate:date];

int year = [components year];
int month = [components month];
int day = [components day];
int hour = [components hour];
int minute = [components minute];
int second = [components second];

NSDate는 생각보다 많은 정보를 담고 있다. 위 정보는 이 중 일부를 가져오는 것이라는 점을 기억해야 한다.

관련 링크) [iOS] 특정 날짜와 시간으로 NSDate 객체를 생성하기

댓글 1개 :

fzud :

출력형식을 지정하기 위한 NSDateFormatter도 써줘야 하고 그놈의 독특한 형식때문에 cocoa를 몇년이나 써왔지만 날짜처리 할때는 매번 문서를 뒤적뒤적 하게 되내요.