본문 바로가기

iOS개발팁

NSDate와 NSDateFormatter 사용하기 03

문자열로 표현된 날짜 데이터를 NSDate 객체로 바꾸는 것도 빈번히 일어나는 일입니다. 간한히 예로 들면 100610 이라고 표현된 날짜 문자열을 2010/10/06으로 바꾸고 싶을 때 다음 순서를 따라야 합니다.

  1. 우선 100610 을 NSDateFormatter를 이용하여 NSDate 객체로 변환한다
  2. 변환된 NSDate 를 NSDateFormatter를 이용하여 원하는 날짜 문자열을 얻는다.
위의 순서대로 작성한 코드를 보겠습니다 :)
//문자열 날짜를 NSDate로 변경하기
{
        NSString *dateStr = @"20020505";
       
        // 1. NSDate로 변경하기
        NSDateFormatter *dateFormat = [[[NSDateFormatter alloc] init] autorelease];
        [dateFormat setDateFormat:@"yyyyMMdd"];
        NSDate *date = [dateFormat dateFromString:dateStr];
       
        // 2. 원하는 문자열 얻기
        [dateFormat setDateFormat:@"EEEE MMMM d, YYYY"];
        dateStr = [dateFormat stringFromDate:date];
       
        NSLog(@"%@", dateStr);
}
//출력결과
//Sunday May 5, 2002
문자열로 표현된 날짜 데이터를 NSDate 객체로 변경하여 날짜간의 차이를 얻는 것은 NSDate 의 인스턴스 메소드인 timeIntervalSinceDate 를 이용하면 됩니다.

지금까지는 출력 결과가 모두 미국식 표기였습니다. 하지만 특정 지역에 맞게 요일 이름과 월 이름을 출력하려면 어떻게 해야 할까죠? 다음에는 지역 설정에 대해서 알아보겠습니다.