728x90
반응형
728x90
목 차
반응형
1. timedelta (datetime 모듈의 일부)
timedelta는 고정된 시간 단위를 기준으로 날짜와 시간을 계산합니다. 일(day), 초(second), 분(minute), 시간(hour), 주(week) 등의 고정된 시간 단위로 연산할 때 사용됩니다.
주요 특징
- 정확한 시간 간격을 계산할 때 적합.
- 달(month)이나 연(year)과 같은 가변적 단위를 지원하지 않음.
- 예를 들어, 하루는 항상 24시간, 1주일은 항상 7일로 고정되어 있습니다.
사용 예제
from datetime import datetime, timedelta
now = datetime.now()
# 10일 더하기
future_date = now + timedelta(days=10)
print("10일 뒤:", future_date)
# 2시간 빼기
past_time = now - timedelta(hours=2)
print("2시간 전:", past_time)
'''
실행 결과
10일 뒤: 2025-01-17 11:50:31.568739
2시간 전: 2025-01-07 09:50:31.568739
'''
2. relativedelta (dateutil 모듈의 일부)
relativedelta는 사람 친화적인 단위를 기준으로 날짜와 시간을 계산합니다. 특히, 달(month)과 연(year)처럼 가변적인 단위를 처리할 수 있습니다. 예를 들어, 어떤 달은 28일, 30일, 또는 31일이므로 이런 경우 relativedelta를 사용하는 것이 적합합니다.
주요 특징
- 가변적인 시간 단위(년, 월, 일)를 지원.
- 날짜를 자동으로 조정하여 올바른 결과를 반환.
- 특정 날짜와 시간을 정확히 조정할 수 있음(예: 특정 요일로 이동).
사용 예제
from datetime import datetime
from dateutil.relativedelta import relativedelta
now = datetime.now()
# 1달 더하기 (달의 일수에 따라 달라질 수 있음)
next_month = now + relativedelta(months=1)
print("1달 뒤:", next_month)
# 1년 2달 빼기
past_date = now - relativedelta(years=1, months=2)
print("1년 2달 전:", past_date)
# 특정 요일로 이동 (다음 금요일)
next_friday = now + relativedelta(weekday=4) # 0=월요일, 4=금요일
print("다음 금요일:", next_friday)
'''
실행 결과
1달 뒤: 2025-02-07 11:59:17.877224
1년 2달 전: 2023-11-07 11:59:17.877224
다음 금요일: 2025-01-10 11:59:17.877224
'''
3. timedelta와 relativedelta의 차이점
특징 | timedelta | relativedelta |
지원 단위 | 고정된 시간 단위 (일, 초, 시간 등) | 가변적인 시간 단위 (년, 월 등 포함) |
가변 날짜 처리 | 지원하지 않음 (예: 1달 = 항상 30일로 계산) | 지원 (예: 1달 뒤를 올바른 날짜로 계산) |
복잡한 연산 | 간단한 연산에 적합 | 사람 친화적인 계산에 적합 |
의존 모듈 | datetime 모듈 기본 제공 | dateutil 패키지 설치 필요 |
4. 요약하기
- 고정된 시간 단위로 계산할 경우: timedelta가 적합.
- 예: "정확히 10일 뒤", "48시간 뒤" 등의 계산.
- 가변적인 시간 단위로 계산할 경우: relativedelta가 적합.
- 예: "1달 뒤", "다음 금요일" 등의 계산.
관련글
728x90
반응형
'프로그래밍 > [Python] 파이썬' 카테고리의 다른 글
[Python] 파이썬 날짜, 시간 더하기 빼기 (77) | 2025.01.08 |
---|---|
[Python] 파이썬 날짜/시간 포맷팅 다루기 (strftime, strptime) (59) | 2025.01.08 |
Epoch time(에포크 시간)에 대하여 (133) | 2025.01.05 |
[Python] 파이썬 자주 사용하는 random 모듈 함수들 (71) | 2025.01.04 |
파이썬 패키지, 모듈 import 하는 방법 정리 (import, from , as) (0) | 2024.11.30 |