프로그래밍/Python

[python] datetime 형식의 두 날짜간의 차이 구하기

채윤아빠 2021. 6. 22. 08:10

Python에서 datetime 형식의 두 날짜 사이의 시간 차이를 계산하는 방법에 대해 알아보겠습니다. datetime 모듈은 날짜와 시간 연산을 매우 간편하게 해주는 강력한 도구입니다.

기본적인 datetime 차이 계산

가장 간단한 방법은 두 datetime 객체를 빼는 것입니다. 이렇게 하면 timedelta 객체를 얻을 수 있습니다.

from datetime import datetime

# 두 날짜 생성
date1 = datetime(2024, 3, 15, 10, 30, 0)  # 202431510:30:00
date2 = datetime(2024, 5, 20, 14, 45, 30)  # 202452014:45:30

# 날짜 차이 계산
time_difference = date2 - date1

# 차이 출력
print("날짜 차이:", time_difference)
print("총 일수:", time_difference.days)
print("총 초:", time_difference.total_seconds())


실행 결과

날짜 차이: 66 days, 4:15:30
총 일수: 66
총 초: 5731530.0

특정 단위로 차이 계산하기

timedelta 객체의 다양한 속성을 활용하여 원하는 단위로 차이를 계산할 수 있습니다.

# 다양한 단위로 차이 계산
print("총 시간(시):", time_difference.total_seconds() / 3600)  # 시간으로 변환
print("총 시간(분):", time_difference.total_seconds() / 60)   # 분으로 변환


실행 결과

총 시간(시): 1588.2583333333334
총 시간(분): 95295.5

현재 시간과의 차이 계산

현재 시간과의 차이를 계산하는 방법도 매우 간단합니다.

from datetime import datetime, timedelta

# 현재 시간 가져오기
now = datetime.now()

# 특정 날짜와 현재 시간 차이 계산
future_date = now + timedelta(days=100)
past_date = now - timedelta(days=50)

print("현재로부터 100일 후:", future_date)
print("현재로부터 50일 전:", past_date)
print("100일 후까지 남은 일수:", (future_date - now).days)


실행 결과

현재로부터 100 후: 2021-09-30 08:10:00
현재로부터 50 전: 2021-05-03 08:10:00
100 후까지 남은 일수: 100

주의할 점

  • datetime 객체는 불변(immutable)입니다.
  • timedelta로 날짜 계산 시 윤년 등을 자동으로 처리해줍니다.
  • 시간대(timezone)를 고려해야 할 경우 pytz 라이브러리를 사용하는 것이 좋습니다.

맺음말

Python의 datetime 모듈은 날짜와 시간 연산을 정말 쉽고 직관적으로 만들어줍니다. 여러분의 프로젝트에서 날짜 차이 계산이 필요할 때 이 방법들을 활용하시면 좋습니다.

728x90
반응형