NSDateを日付に変換する
はじめにNSDateComponentsに一度変換する必要がある。この変換にはNSCalendarを必要とする。
- (NSDateComponents *)componentsFromDate:(NSDate *)date withCalendar:(NSCalendar *)calendar { /* calendarが指定されていない場合には、現在のカレンダーを指定する */ if (!calendar) { calendar = [NSCalendar currentCalendar]; } /* 日付のコンポーネントとして、年月日時分秒を取得する */ static unsigned int unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit; return [calendar components:unitFlags fromDate:date]; }
NSDateComponentsを取得後は、下記のように日付を取得する。
NSDate *date = [NSDate date]; NSDateComponents *components = [self componentsFromDate:date withCalendar:nil]; NSLog(@"%d年 %d月 %d日 %d時 %d分 %d秒", [components year], [components month], [components day], [components hour], [components minute], [components second]);