Python time

LshDevLog·2026년 4월 5일

python

목록 보기
9/16
post-thumbnail
  • time
    • time 모듈은 시간 처리(타임스탬프, 지연, 포맷 등)를 위한 기본 표준 라이브러리
    • datetime과 time은 역할이 다름
      • datetime
        • 사람이 읽기 쉬움
        • 비즈니스/데이터 처리
      • time
        • 시스템 친화적
        • 성능 측정/저수준 처리
    • 서버 개발에서는..
      • 성능 측정
      • 딜레이 처리
      • timestamp 기반 시간 데이터 처리

현재 시간

import time

print(time.time())
1775418980.813185
  • time
    • 현재 시간을 Unix timestamp(float)로 반환
    • Unix timestamp
      • 1970-01-01 00:00:00 UTC부터 지난 초 수

import time

print(time.localtime())
time.struct_time(tm_year=2026, tm_mon=4, tm_mday=6, tm_hour=4, tm_min=57, tm_sec=9, tm_wday=0, tm_yday=96, tm_isdst=0)
  • localtime
    • timestamp를 로컬 시간대 기준의 struct_time으로 리턴
      • struct_time
        • 연, 월, 일, 시, 분, 초 등의 정보를 가진 튜플 형태의 객체
    • 인자 생략하면 현재 시각 기준

import time

t = time.localtime()
year = t.tm_year
month = t.tm_mon
day = t.tm_mday
hour = t.tm_hour
minute = t.tm_min
sec = t.tm_sec
  • 요소 선택 가능

import time

print(time.gmtime())
time.struct_time(tm_year=2026, tm_mon=4, tm_mday=5, tm_hour=19, tm_min=58, tm_sec=35, tm_wday=6, tm_yday=95, tm_isdst=0)
  • gmtime
    • timestamp를 UTC 기준 struct_time 리턴

import time

t = time.localtime()
ts = time.mktime(t)

print(ts)
  • mktime
    • struct_time을 timestamp로 변환

시간 포맷 변환

import time

t = time.localtime()
formatted = time.strftime("%Y-%m-%d %H:%M:%S", t)

print(formatted)
2026-04-06 05:39:19
  • strftime
    • 시간(struct_time) -> 문자열

import time

formatted = "2026-04-06 05:39:19"
tt = time.strptime(formatted, "%Y-%m-%d %H:%M:%S")

print(tt)
time.struct_time(tm_year=2026, tm_mon=4, tm_mday=6, tm_hour=5, tm_min=39, tm_sec=19, tm_wday=0, tm_yday=96, tm_isdst=-1)
  • strptime
    • 문자열 -> 시간(struct_time)

--

시간 지연(sleep)

import time

start = time.time()
time.sleep(1)
end = time.time()

print(end - start)
1.000509262084961
  • sleep 용도
    • API 요청 제한
    • 게임 루프 딜레이
    • 테스트 코드


측정

import time

start = time.perf_counter()

for _ in range(100000000):
    pass

end = time.perf_counter()
print(end - start)
3.9375517000444233
  • perf_counter
    • 성능 측정
    • 고정밀 시간 측정(서버 개발)
    • 짧은 시간의 실행 시간 측정에 적합

import time

start = time.process_time()

for _ in range(100000000):
    pass

end = time.process_time()
print(end - start)
4.296875
  • process_time
    • 프로세스 시간 측정
    • CPU 사용 시간만 측정
    • Sleep()으로 기다린 시간은 측정X

time + datetime

성능 측정과 로그 출력

import time
from datetime import datetime

start = time.perf_counter()

#작업
time.sleep(1)

end = time.perf_counter()

print(f'[{datetime.now()}] 실행시간: {end - start:.4f}')
  • 성능 측정: time
  • 로그 출력: datetime

timestamp <-> datetime 변환

import time
from datetime import datetime

# timestamp 생성
ts = time.time()

# datetime으로 변환
dt = datetime.fromtimestamp(ts)

print(dt)
  • DB에는 timestamp로 저장
  • 서비스 로직에서는 datetime으로 처리

0개의 댓글