Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 타임튜플(TimeTuple)이란? 구조와 struct_time 속성 완벽 정리

파이썬에서는 많은 시간(time) 관련 함수들이 시간을 9개의 숫자로 이루어진 튜플(tuple) 형태로 처리합니다. 이렇게 9개의 요소로 구성된 시간 튜플을 흔히 타임튜플(TimeTuple)이라고 부르며, 각 인덱스 위치에는 아래 표와 같이 특정한 의미의 시간 정보가 담깁니다.

타임튜플의 9가지 필드

인덱스필드(Field)값 범위
0연도 (4자리)예: 2008
11 ~ 12
21 ~ 31
30 ~ 23
40 ~ 59
50 ~ 61 (60 또는 61은 윤초)
6요일0 ~ 6 (0은 월요일)
7연중 경과 일수1 ~ 366 (율리우스일)
8서머타임(DST) 적용 여부-1, 0, 1 (-1은 라이브러리가 DST를 자동 판단)

struct_time 구조체와의 관계

위에서 살펴본 타임튜플은 사실 파이썬 time 모듈의 struct_time 구조체와 동일한 구조입니다. 다만 struct_time은 단순 튜플과 달리 이름 붙은 속성(attribute)을 통해 각 값에 접근할 수 있어 훨씬 직관적입니다. struct_time이 가지는 주요 속성은 다음과 같습니다.

인덱스속성(Attribute)값 범위
0tm_year예: 2008
1tm_mon1 ~ 12
2tm_mday1 ~ 31
3tm_hour0 ~ 23
4tm_min0 ~ 59
5tm_sec0 ~ 61 (60 또는 61은 윤초)
6tm_wday0 ~ 6 (0은 월요일)
7tm_yday1 ~ 366 (율리우스일)
8tm_isdst-1, 0, 1 (-1은 라이브러리가 DST를 자동 판단)

타임튜플 사용 예제

time.localtime() 함수를 호출하면 현재 현지 시간을 struct_time 객체로 얻을 수 있습니다.

import time

local_time = time.localtime()
print(local_time)
# time.struct_time(tm_year=2024, tm_mon=5, tm_mday=15,
#                  tm_hour=10, tm_min=30, tm_sec=45,
#                  tm_wday=2, tm_yday=136, tm_isdst=0)

print(local_time.tm_year)   # 2024
print(local_time.tm_mon)    # 5
print(local_time.tm_hour)   # 10

이처럼 타임튜플과 struct_time 구조체의 각 인덱스와 속성 의미만 정확히 이해하면, time.localtime(), time.gmtime(), time.mktime() 등 파이썬의 다양한 시간 처리 함수를 훨씬 쉽게 활용할 수 있습니다.