4 핵심 타입
date — 시간 없는 달력 날짜. time — 날짜 없는 시계 시간. datetime — 둘 다. timedelta — 기간 (양/음). 코드 대부분이 datetime 과 timedelta 사용, 다른 거 덜 나옴.
Naive vs aware — 타임존 구분
"naive" datetime 은 타임존 정보 없음. "aware" datetime 은 tzinfo 붙어있음. 산술에서 섞으면 raise. 2020 년대 답 — 항상 aware datetime 사용. datetime.now(timezone.utc) 또는 문자열에 타임존 있는 datetime.fromisoformat 으로 생성. zoneinfo 모듈 (3.9+) 이 IANA 이름 zone 위한 ZoneInfo("Asia/Seoul").
ISO 8601 lifeline
datetime.fromisoformat("2026-05-02T15:30:00+09:00") 가 파싱, dt.isoformat() 이 emit. round-trip 가능, 문자열로 정렬 가능, 모호 X. 현대 코드는 직렬화에 ISO 8601 디폴트. strftime/strptime 가 다른 포맷 처리, 해야만 할 때만 손에 닿아.
timedelta — 기간 + 산술
timedelta(days=7, hours=3) 가 기간. datetime - datetime = timedelta. datetime + timedelta = datetime. 비교 작동. 흔한 idiom — "지금부터 30 일" 엔 now + timedelta(days=30).