Python time 모듈 마스터하기: 함수, 구조체, 실전 예제
Python time 모듈
Python 표준 time 모듈을 탐색하고 핵심 함수를 배우며 실제 사용법을 보여주는 명확한 예제를 확인하세요.
Python의 time 모듈은 타임스탬프 작업, 스케줄링, 경과 시간 측정을 위한 도구를 제공합니다. 함수를 사용하기 전에 모듈을 임포트하세요:
import time
time.time()
time() 함수는 유닉스 에포크(1970년 1월 1일 00:00:00 UTC) 이후 경과한 초 단위 현재 시간을 반환합니다. 유닉스 계열 시스템에서 이 에포크 값은 고정되어 있으며, Windows에서는 동일한 지점에서 파생됩니다.
import time
seconds = time.time()
print("에포크 이후 초 =", seconds)
time.ctime()
POSIX 타임스탬프(에포크 이후 초)를 로컬 시간대의 읽기 쉬운 문자열로 변환합니다.
import time
seconds = 1545925769.9618232
local_time = time.ctime(seconds)
print("로컬 시간:", local_time)
일반적인 출력:
로컬 시간: Thu Dec 27 15:49:29 2018
time.sleep()
지정된 초 수만큼 현재 스레드 실행을 지연시킵니다.
import time
print("즉시 출력됩니다.")
time.sleep(2.4)
print("2.4초 후에 출력됩니다.")
자세한 내용은 Python sleep() 문서를 참조하세요.
time.struct_time 클래스
gmtime() 및 asctime() 같은 함수는 time.struct_time 객체를 반환하거나 받아들이며, 이는 캘린더 시간을 나타내는 9-튜플입니다.
time.struct_time(tm_year=2018, tm_mon=12, tm_mday=27, tm_hour=6, tm_min=35, tm_sec=17, tm_wday=3, tm_yday=361, tm_isdst=0)
| 인덱스 | 속성 | 값 범위 |
| 0 | tm_year | 0000 … 9999 |
| 1 | tm_mon | 1 … 12 |
| 2 | tm_mday | 1 … 31 |
| 3 | tm_hour | 0 … 23 |
| 4 | tm_min | 0 … 59 |
| 5 | tm_sec | 0 … 61 |
| 6 | tm_wday | 0(월) … 6(일) |
| 7 | tm_yday | 1 … 366 |
| 8 | tm_isdst | 0, 1 또는 -1 |
요소에 인덱스나 속성 이름으로 접근할 수 있습니다.
time.localtime()
POSIX 타임스탬프를 로컬 시간대로 표현된 struct_time으로 변환합니다. 인수를 생략하면 현재 시간이 사용됩니다.
import time
result = time.localtime(1545925769)
print("result:", result)
print("\n연도:", result.tm_year)
print("tm_hour:", result.tm_hour)
일반적인 출력:
result: time.struct_time(tm_year=2018, tm_mon=12, tm_mday=27, tm_hour=15, tm_min=49, tm_sec=29, tm_wday=3, tm_yday=361, tm_isdst=0)
연도: 2018
tm_hour: 15
time.gmtime()
localtime()과 동일하지만 UTC(그리니치 표준시) 시간을 반환합니다. 인수 생략 시 현재 에포크 값이 기본값입니다.
import time
result = time.gmtime(1545925769)
print("result:", result)
print("\n연도:", result.tm_year)
print("tm_hour:", result.tm_hour)
일반적인 출력:
result: time.struct_time(tm_year=2018, tm_mon=12, tm_mday=28, tm_hour=8, tm_min=44, tm_sec=4, tm_wday=4, tm_yday=362, tm_isdst=0)
연도: 2018
tm_hour: 8
time.mktime()
로컬 struct_time(또는 9-튜플)을 다시 POSIX 타임스탬프로 변환합니다. localtime()의 역연산입니다.
import time
t = (2018, 12, 28, 8, 44, 4, 4, 362, 0)
local_time = time.mktime(t)
print("로컬 시간:", local_time)
왕복 예제:
import time
seconds = 1545925769
t = time.localtime(seconds)
print("t1:", t)
s = time.mktime(t)
print("\ns:", s)
일반적인 출력:
t1: time.struct_time(tm_year=2018, tm_mon=12, tm_mday=27, tm_hour=15, tm_min=49, tm_sec=29, tm_wday=3, tm_yday=361, tm_isdst=0)
s: 1545925769.0
time.asctime()
struct_time(또는 튜플)을 사람이 읽기 쉬운 문자열로 포맷합니다.
import time
t = (2018, 12, 28, 8, 44, 4, 4, 362, 0)
result = time.asctime(t)
print("결과:", result)
일반적인 출력:
결과: Fri Dec 28 08:44:04 2018
time.strftime()
형식 코드에 기반하여 struct_time을 사용자 지정 문자열로 포맷합니다.
import time
named_tuple = time.localtime()
time_string = time.strftime("%m/%d/%Y, %H:%M:%S", named_tuple)
print(time_string)
일반적인 출력:
12/28/2018, 09:47:41
자주 쓰이는 형식 코드:
%Y – 전체 연도(예: 2018)
%m – 월 01–12
%d – 일 01–31
%H – 시간 00–23
%M – 분 00–59
%S – 초 00–61(윤초)
더 많은 형식 코드는 time.strftime() 문서를 참조하세요.
time.strptime()
지정된 형식에 따라 문자열을 파싱하여 struct_time을 반환합니다.
import time
time_string = "21 June, 2018"
result = time.strptime(time_string, "%d %B, %Y")
print(result)
일반적인 출력:
time.struct_time(tm_year=2018, tm_mon=6, tm_mday=21, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=172, tm_isdst=-1)