728x90

Python에서 날짜와 시간 처리의 기준이 되는 datetime 모듈은 기본 기능부터 타임존, 포맷팅, 연산 등 실무에 꼭 필요한 요소들을 제공합니다. 본 글에서는 실무 중심으로 구성해 초보자도 체계적으로 배울 수 있으며, 고급 활용까지 정리했습니다.
1. datetime 모듈이란?
- Python 표준 라이브러리로, 설치 없이 사용 가능
- 주요 클래스:
date,time,datetime,timedelta,timezone - 날짜 계산, 포맷 변환, 타임존 처리, 주기 계산 등에 유용
2. 기본 사용법: 날짜와 시간 생성
import datetime
# 오늘 날짜
today = datetime.date.today()
print(today) # 2025-07-20
# 현재 날짜와 시간
now = datetime.datetime.now()
print(now) # 2025-07-20 10:30:45.123456
# 특정 날짜 생성
d = datetime.date(2020, 1, 15)
t = datetime.time(14, 30, 0)
print(d, t) # 2020-01-15 14:30:00
3. 날짜와 시간 더하기/빼기
from datetime import datetime, timedelta
now = datetime.now()
one_week = now + timedelta(weeks=1)
yesterday = now - timedelta(days=1)
print(one_week, yesterday)
4. 문자열 ↔ datetime 변환
from datetime import datetime
s = "2025-07-20 15:45:00"
dt = datetime.strptime(s, "%Y-%m-%d %H:%M:%S")
formatted = dt.strftime("%d/%m/%Y, %I:%M %p")
print(formatted) # 20/07/2025, 03:45 PM
5. 타임존 처리
Python 3.9 이상에서는 timezone을 직접 사용할 수 있습니다.
from datetime import datetime, timezone, timedelta
utc_now = datetime.now(timezone.utc)
kst = timezone(timedelta(hours=9))
kst_now = utc_now.astimezone(kst)
print(utc_now, kst_now)
6. datetime 비교 및 차이
from datetime import datetime
a = datetime(2025,7,1)
b = datetime(2025,7,20)
print(b > a) # True
print((b - a).days) # 19
7. 활용 예시 비교 한눈에
| 목적 | 방법 | 예시 |
|---|---|---|
| 오늘 날짜 | date.today() |
2025‑07‑20 |
| 현재 시각 | datetime.now() |
2025‑07‑20 10:30:45 |
| 타임존 변환 | astimezone() |
UTC → KST |
| 날짜 계산 | timedelta |
+30일 → 다음 달 |
8. 고급: 반복적인 일정 생성
from datetime import datetime, timedelta
def schedule(start, count, interval_days):
dates = []
current = start
for _ in range(count):
dates.append(current)
current += timedelta(days=interval_days)
return dates
for d in schedule(datetime(2025,7,20), 5, 7):
print(d.date())
9. 주의사항 & 팁
- 날짜 비교 전 모두 datetime 또는 date인지 확인
- 타임존 혼용 시 오류 방지하려면
aware datetime만 사용 - 문자열 포맷이 다른 경우 예외 처리 필요 (try-except)
- 시간 단위 계산 시 leap seconds 고려할 것 (보통 무시 가능)
10. 결론
datetime 모듈은 날짜/시간 처리의 핵심으로, 포매팅, 연산, 타임존, 반복 일정까지 다룰 수 있습니다. 실무에서 자주 사용하는 기능을 체계적으로 익히면 안정적이고 신뢰 있는 시간 기반 로직을 구현할 수 있습니다.
참고 출처
- Python 공식 문서 – datetime: https://docs.python.org/3/library/datetime.html
- Effective Python – Brett Slatkin
- Python Cookbook – David Beazley & Brian K. Jones
728x90
'Artificial Intelligence > 60. Python' 카테고리의 다른 글
| [PYTHON] OpenAI와 함께하는 실전 Python 인공지능 개발 가이드 (0) | 2025.07.22 |
|---|---|
| [PYTHON] OS 모듈 완전 가이드 : 파일과 시스템을 마음껏 제어하라 (0) | 2025.07.22 |
| [PYTHON] Regex 완전 정복 : 정규표현식으로 문자열 다루기 (0) | 2025.07.22 |
| [PYTHON] BeautifulSoup 완전 안내 : 웹 크롤링의 핵심 요소 (0) | 2025.07.22 |
| [PYTHON] requests 라이브러리 완전 정복 : HTTP 요청을 간단하게 (0) | 2025.07.22 |