Python에서 datetime 형식의 두 날짜 사이의 시간 차이를 계산하는 방법에 대해 알아보겠습니다. datetime 모듈은 날짜와 시간 연산을 매우 간편하게 해주는 강력한 도구입니다.
기본적인 datetime 차이 계산
가장 간단한 방법은 두 datetime 객체를 빼는 것입니다. 이렇게 하면 timedelta 객체를 얻을 수 있습니다.
from datetime import datetime
# 두 날짜 생성
date1 = datetime(2024, 3, 15, 10, 30, 0) # 2024년 3월 15일 10:30:00
date2 = datetime(2024, 5, 20, 14, 45, 30) # 2024년 5월 20일 14: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
반응형
'프로그래밍 > Python' 카테고리의 다른 글
[python] 크롬 브라우저 실행 방법 (0) | 2021.08.09 |
---|---|
[Python] email-"The sender address is not a valid RFC-5322 address" 오류 대처 (0) | 2021.08.05 |
[python] JSON 검증 (validation) (0) | 2021.06.19 |
[python] OpenCV - 이미지의 폭과 높이 구하기 (0) | 2021.05.31 |
[Git] 특정 커밋(commit)로 이동하기 - checkout (0) | 2021.05.28 |