WjExplor Story

datetime 모듈의 timedelta 본문

Python/Python : Code Study

datetime 모듈의 timedelta

더블유제이플로어 2025. 9. 26. 00:37

`datetime` 모듈의 `timedelta`는 **두 날짜 또는 시간 사이의 '기간' 또는 '차이'**를 나타내는 객체입니다. 특정 시점(예: 2025년 9월 25일)이 아니라, **시간의 길이**를 표현할 때 사용합니다.


`timedelta`의 주요 특징 및 사용법


1.  **기간 표현:**
    *   `timedelta` 객체는 `days`, `seconds`, `microseconds` 세 가지 내부 값으로 기간을 저장합니다.
    *   생성 시에는 `weeks`, `hours`, `minutes`, `milliseconds` 등 다양한 단위를 사용할 수 있으며, 이들은 내부적으로 `days`, `seconds`, `microseconds`로 변환됩니다.

   from datetime import timedelta
 
 
    # 10일
    delta1 = timedelta(days=10)
    print(f"10일: {delta1}")

    # 2시간 30분
    delta2 = timedelta(hours=2, minutes=30)
    print(f"2시간 30분: {delta2}")

    # 1주 3일
    delta3 = timedelta(weeks=1, days=3)
    print(f"1주 3일: {delta3}")


2.  **날짜/시간 계산:**
    *   `datetime` 또는 `date` 객체에 `timedelta`를 더하거나 빼서 미래 또는 과거의 날짜/시간을 계산할 수 있습니다.

 from datetime import datetime, timedelta

now = datetime.now()
print(f"현재 시각: {now}")

# 5일 후
future_date = now + timedelta(days=5)
print(f"5일 후: {future_date}")

# 3시간 전
past_time = now - timedelta(hours=3)
print(f"3시간 전: {past_time}")



3.  **두 날짜/시간 간의 차이 계산:**
    *   두 `datetime` 또는 `date` 객체를 서로 빼면 그 결과로 `timedelta` 객체가 반환됩니다.

    from datetime import date

    today = date.today()
    yesterday = date(2025, 9, 24) # 어제 날짜 (예시)

    diff = today - yesterday
    print(f"오늘과 어제의 차이: {diff}")
    print(f"차이(일): {diff.days}") # 차이를 일 단위로 접근


4.  **`timedelta` 객체 간의 연산:**
    *   `timedelta` 객체끼리 더하거나 빼거나, 정수/실수를 곱하거나 나눌 수 있습니다.

    from datetime import timedelta

    one_day = timedelta(days=1)
    two_hours = timedelta(hours=2)

    # 더하기
    sum_delta = one_day + two_hours
    print(f"1일 + 2시간: {sum_delta}")

    # 곱하기
    five_days = one_day * 5
    print(f"1일 * 5: {five_days}")

요약

`timedelta`는 `datetime` 모듈에서 시간의 '길이'나 '간격'을 다룰 때 사용하는 핵심적인 객체입니다. 날짜/시간 계산, 두 시점 간의 차이 계산 등 다양한 시간 관련 작업에 활용됩니다.