Python의 time 모듈과 datetime 모듈 사용 가이드

시간 처리를 위한 두 模块의 용도

Python에서는 시간과 날짜를 다룰 때 주로 time 모듈과 datetime 모듈을 사용합니다. 두 모듈은 각각 다른 용도에 최적화되어 있으며, 상황에 맞게 선택해야 합니다.

  • time: 타임스탬프 연산과 지연 처리에 적합
  • datetime: 날짜와 시간의 계산, 서식 변환, 형변환 등에 적합

1. time 모듈 활용법

time 모듈은 1970년 1월 1일 00:00:00 UTC부터 현재까지 경과한 초 단위의 값을 다룹니다.

1.1 현재 타임스탬프 얻기

import time

epoch_seconds = time.time()
print(epoch_seconds)  # 출력 예: 1707361200.123456

1.2 실행 지연시키기

print("시작...")
time.sleep(3)  # 3초 동안 일시 정지
print("종료")

1.3 시간을 문자열로 변환 (strftime)

formatted = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print(formatted)  # 출력 예: 2025-02-08 14:30:00

1.4 문자열에서 시간으로 파싱 (strptime)

parsed = time.strptime("2024-06-15 09:00:00", "%Y-%m-%d %H:%M:%S")
print(parsed)  # time.struct_time 객체 반환

1.5 CPU 실행 시간 측정

cpu_runtime = time.process_time()
print(f"CPU 실행 시간: {cpu_runtime}초")

2. datetime 모듈 활용법

datetime 모듈은 날짜와 시간을 하나의 객체로 관리하며, 다양한 산술 연산과 형식 변환을 지원합니다.

2.1 현재 날짜와 시간 얻기

from datetime import datetime

current = datetime.now()
print(current)  # 출력 예: 2025-02-08 14:30:00.123456

2.2 특정 날짜와 시간 생성

target = datetime(2024, 12, 25, 14, 30, 0)
print(target)  # 2024-12-25 14:30:00

2.3 날짜와 시간을 문자열로 서식화

formatted = current.strftime("%Y년 %m월 %d일 %H시 %M분 %S초")
print(formatted)  # 2025년 02월 08일 14시 30분 00초

2.4 문자열을 날짜 객체로 변환

parsed = datetime.strptime("2025-03-20 18:45:00", "%Y-%m-%d %H:%M:%S")
print(parsed)  # datetime 객체

2.5 시간 간격 계산 (timedelta)

from datetime import timedelta

next_week = current + timedelta(weeks=1)
print(f"1주 후: {next_week}")

three_days_later = current + timedelta(days=3)
print(f"3일 후: {three_days_later}")

thirty_minutes_later = current + timedelta(minutes=30)
print(f"30분 후: {thirty_minutes_later}")

2.6 datetime을 타임스탬프로 변환

epoch_value = current.timestamp()
print(epoch_value)  # 1707361200.123456

2.7 타임스탬프를 datetime으로 변환

converted = datetime.fromtimestamp(1707361200)
print(converted)  # 2025-02-08 14:30:00

2.8 날짜의 개별 구성요소 접근

year = current.year
month = current.month
day = current.day
hour = current.hour
minute = current.minute
second = current.second

print(f"{year}년 {month}월 {day}일 {hour}시 {minute}분 {second}초")

3. 두 모듈의 비교

기능 time datetime
현재 시간 조회 time.time() datetime.now()
타임스탬프 변환 time.time() datetime.timestamp()
문자열 파싱 time.strptime() datetime.strptime()
문자열 포맷팅 time.strftime() datetime.strftime()
시간 지연 time.sleep() 미지원
시간 계산 미지원 timedelta 객체 사용

4. 선택 가이드

보통의 경우 datetime 모듈이 더 직관적이고 사용하기 쉽습니다. 하지만 다음과 같은 상황에서는 time 모듈이 적합합니다:

  • 시스템 타임스탬프가 필요한 저수준 작업
  • 실행 시간을 일시 정지해야 하는 경우
  • 성능 측정이나 벤치마킹

날짜와 시간의 연산이 필요하거나 가독성 있는 출력 형식이 필요하다면 datetime 모듈을 사용하세요.

태그: python time datetime

7월 25일 06:25에 게시됨