본문 바로가기

Programming Language/Objective-C

NSDate로 현재 날짜 얻기

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

NSDate: 어떤 기준일로부터의 경과 시점을 나타내는 클래스입니다. 기준일이 언제인지는 이 클래스만으로 알 수 없습니다.

NSCalendar: 특정 지역에서 사용하는 달력을 나타냅니다. 이 클래스는 달력의 기준일, 1년당 날 수 계산 및 1달당 일 수 계산과 같은 역할을 수행할 수 있습니다.

NSDateComponents:NSCalendar에서 제공하는 역법과 NSDate에서 제공하는 기준일로부터의 시점을 사용하여 연, 월, 일, 시, 분, 초의 시각 요소를 추출합니다. 반대로 지정된 시각 요소와 NSCalendar에서 제공하는 역법을 사용해 NSDate 클래스의 인스턴스를 합성하기도 합니다.

NSDateComponents에서 지원하는 날짜 및 시각 요소는 다음과 같습니다. 자료형은 NSCalendarUnit이며 실제로는 NSUInteger가 재정의 된 것입니다.

  • NSCalendarUnitEra (deprecated NSEraCalendarUnit): 기원 전 또는 기원 후 요소입니다.
  • NSCalendarUnitYear (deprecated NSYearCalendarUnit): 연 요소입니다.
  • NSCalendarUnitMonth (deprecated NSMonthCalendarUnit): 월 요소입니다.
  • NSCalendarUnitDay (deprecated NSDayCalendarUnit): 일 요소입니다.
  • NSCalendarUnitHour (deprecated NSHourCalendarUnit): 시 요소입니다.
  • NSCalendarUnitMinute (deprecated NSMinuteCalendarUnit): 분 요소입니다.
  • NSCalendarUnitSecond (deprecated NSSecondCalendarUnit): 초 요소입니다.
  • NSCalendarUnitWeekday (deprecated NSWeekdayCalendarUnit): 요일 요소입니다. NSCalendar가 그레고리력일 경우 일요일을 1, 월요일을 2로 간주합니다.
  • NSCalendarUnitWeekdayOrdinal (deprecated NSWeekdayOrdinalCalendarUnit): 요일 요소입니다. 예를 들어 NSCalendar가 그레고리력일 경우 2013년 1월 10일은 그 달의 두 번째 목요일이므로 2가 반환됩니다.
  • NSCalendarUnitWeekOfMonth (deprecated NSWeekCalendarUnit, NSWeekOfMonthCalendarUnit): 그 달의 몇 째 주에 속하는지를 나타내는 요소입니다.
  • NSCalendarUnitWeekOfYear (deprecated NSWeekCalendarUnit, NSWeekOfYearCalendarUnit): 그 해에 몇 째 주에 속하는지를 나타내는 요소입니다.
  • NSCalendarUnitYearForWeekOfYear (deprecated NSYearForWeekOfYearCalendarUnit)
  • NSCalendarUnitQuarter (deprecated NSQuarterCalendarUnit): 분기 요소입니다.
#import <Foundation/Foundation.h>

int main (int argc, const char * argv[]) {
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
	
    // insert code here...
    NSLog(@"Hello, World!");
	
	NSDate * nsDate = [NSDate date]; // 현재 날짜 및 시간으로 NSDate 인스턴스를 초기화
	NSCalendar * nsCalendar = [NSCalendar currentCalendar]; // 캘린더 객체를 생성한다. NSDate 객체에서 나타내는 날짜를 이용해 연, 월, 일, 시, 분, 초를 구하는 객체다.
	unsigned int unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit; // 각각 연, 월, 일, 시, 분, 초 구성요소를 사용한다고 지정하는 플래그 연산이다.
	NSDateComponents * nsDateComponents = [nsCalendar components:unitFlags fromDate:nsDate]; // 연, 월, 일, 시, 분, 초 구성요소를 가져오는 객체이다.
	
	NSLog(@"년 구성 요소 : %d", [nsDateComponents year]);
	NSLog(@"월 구성 요소 : %d", [nsDateComponents month]);
	NSLog(@"일 구성 요소 : %d", [nsDateComponents day]);
	NSLog(@"시 구성 요소 : %d", [nsDateComponents hour]);
	NSLog(@"분 구성 요소 : %d", [nsDateComponents minute]);
	NSLog(@"초 구성 요소 : %d", [nsDateComponents second]);
	
	NSLog(@"END\n");
	
	[nsDateComponents release];
	[nsCalendar release];
	[nsDate release];
	
	[pool drain];
    return 0;
}