파이썬에서 datetime.date 인스턴스의 timetuple() 메서드는 time.struct_time 타입의 객체를 반환합니다. 이 struct_time은 네임드 튜플(named tuple) 객체로, 각 속성에 인덱스 또는 이름을 통해 접근할 수 있다는 특징이 있습니다.
struct_time 객체의 구조
struct_time 객체는 날짜 필드(연도, 월, 일)와 시간 필드(시, 분, 초)를 모두 표현하는 속성들을 가지고 있으며, 추가로 서머타임(Daylight Saving Time)이 활성화되어 있는지 여부를 나타내는 플래그도 포함하고 있습니다.
timetuple() 함수가 반환하는 네임드 튜플에서 연도(tm_year), 월(tm_mon), 일(tm_mday) 필드는 해당 date 객체의 값으로 설정되며, 시간과 관련된 시(tm_hour), 분(tm_min), 초(tm_sec) 필드는 모두 0으로 설정됩니다. 이는 date 객체에는 시간 정보가 포함되어 있지 않기 때문입니다.
사용 예제
import datetime todaysDate = datetime.date.today() timeTuple = todaysDate.timetuple() print(timeTuple) print(timeTuple.tm_year)
실행 결과
위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.
time.struct_time(tm_year=2017, tm_mon=12, tm_mday=28, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=362, tm_isdst=-1) 2017
주요 속성 정리
- tm_year: 연도
- tm_mon: 월 (1~12)
- tm_mday: 일 (1~31)
- tm_hour: 시 (0~23)
- tm_min: 분 (0~59)
- tm_sec: 초 (0~61)
- tm_wday: 요일 (월요일=0 ~ 일요일=6)
- tm_yday: 해당 연도의 몇 번째 날인지 (1~366)
- tm_isdst: 서머타임 적용 여부 (-1이면 정보 없음)
위 예제에서 tm_wday=3은 목요일을 의미하고, tm_yday=362는 2017년의 362번째 날임을 나타냅니다. 이처럼 timetuple() 메서드를 활용하면 날짜 객체를 구조화된 튜플 형태로 쉽게 변환하여 다양한 방식으로 활용할 수 있습니다.