본문 바로가기
IT/파이썬 라이브러리 (Python)

#005 파이썬 라이브러리 : datetime.timedelta 날짜 간의 차이 및 계산

by DoitSQL 2023. 3. 31.
728x90

파이썬 라이브러리 datetime.timedelta

#005 파이썬 라이브러리 : datetime.timedelta 날짜 간의 차이 및 계산

datetime.timedelta 날짜 간의 차이 및 계산

datetime.timedelta는 기간을 나타내는 데 사용되는 Python 모듈입니다. 날짜와 시간에 대한 산술 연산을 수행하고 주어진 날짜에서 시간을 더하거나 빼며 두 날짜 또는 시간의 차이를 측정할 수 있습니다.

 

지난 시간에 datetime.timedelta에 대해서 예제에 나온 적이 있지만 이번 시간에 더 자세히 알아보겠습니다.


timedelta 객체 생성

timedelta 객체를 생성하려면 datetime.timedelta() 생성자를 사용할 수 있습니다. 일, 초, 마이크로초, 밀리초, 분, 시간 및 주에 대한 인수를 전달할 수 있습니다.

항목 설명
days
seconds
microseconds 마이크로 초
milliseconds 밀리 초 (1밀리 초는 1000마이크로 초)
minutes
hours 시간
weeks 주 (7일을 의미함)
import datetime

# create a timedelta object representing 10 days
td = datetime.timedelta(days=10)
print(td)

# create a timedelta object representing 5 hours
td = datetime.timedelta(hours=5)
print(td)

# create a timedelta object representing 1 week and 3 days
td = datetime.timedelta(weeks=1, days=3)
print(td)

# create a timedelta object representing 2 minutes and 30 seconds
td = datetime.timedelta(minutes=2, seconds=30)
print(td)

▶ 결과

10 days, 0:00:00
5:00:00
10 days, 0:00:00
0:02:30

시간 더하기 및 빼기

"+" 및 "-" 연산자를 사용하여 주어진 날짜 또는 시간에서 timedelta 객체를 사용하여 더하거나 뺄 수 있습니다.

import datetime

# create a datetime object for March 1, 2023 at 12:00:00 PM
dt = datetime.datetime(2023, 3, 1, 12, 0, 0)

# add 1 day to the datetime object
new_dt = dt + datetime.timedelta(days=1)
print(new_dt)

# subtract 5 hours from the datetime object
new_dt = dt - datetime.timedelta(hours=5)
print(new_dt)

# add 1 week and 3 days to the datetime object
new_dt = dt + datetime.timedelta(weeks=1, days=3)
print(new_dt)

# subtract 2 minutes and 30 seconds from the datetime object
new_dt = dt - datetime.timedelta(minutes=2, seconds=30)
print(new_dt)

▶ 결과

2023-03-02 12:00:00
2023-03-01 07:00:00
2023-03-11 12:00:00
2023-03-01 11:57:30

시간의 차이 측정

"-" 연산자를 사용하여 두 날짜 또는 시간의 차이를 측정할 수 있습니다. 그러면 두 날짜 또는 시간 사이의 기간을 나타내는 'timedelta' 개체가 반환됩니다.

import datetime

# create a datetime object for March 1, 2023 at 12:00:00 PM
dt1 = datetime.datetime(2023, 3, 1, 12, 0, 0)

# create a datetime object for March 5, 2023 at 4:30:00 PM
dt2 = datetime.datetime(2023, 3, 5, 16, 30, 0)

# calculate the difference between the two datetime objects
td = dt2 - dt1

# print the difference in days and seconds
print(td)          # output: 4 days, 4:30:00
print(td.days)     # output: 4
print(td.seconds)  # output: 16200

▶ 결과

4 days, 4:30:00
4
16200

시간의 차이는 일자(days0, 초(seconds)로 측정할 수 있다.


다른 것들

기타 다른 옵션들을 살펴봅니다.

 

total_seconds   

total_seconds() 메서드를 사용하여 timedelta 객체가 나타내는 총 초 수를 얻을 수 있습니다.

import datetime

# create a timedelta object representing 2 hours and 30 minutes
td = datetime.timedelta(hours=2, minutes=30)

# get the total number of seconds represented by the timedelta object
total_seconds = td.total_seconds()

print(total_seconds)  # output: 9000.0

▶ 결과

9000.0

 

timedelta 비교하기

표준 비교 연산자(<, <=, ==, >=, >)를 사용하여 두 개의 timedelta 개체를 비교할 수 있습니다.

import datetime

# create two timedelta objects
td1 = datetime.timedelta(days=10)
td2 = datetime.timedelta(days=7)

# compare the two timedelta objects
if td1 > td2:
    print('td1 is greater than td2')
else:
    print('td2 is greater than or equal to td1')

▶ 결과

td1 is greater than td2

결 론

'datetime.timedelta'는 날짜와 시간에 대한 계산을 수행하고, 주어진 날짜에서 시간을 더하거나 빼며, 두 날짜 또는 시간 사이의 차이를 측정할 수 있는 강력한 모듈입니다. 'timedelta'에서 사용할 수 있는 옵션을 사용하여 필요에 맞게 동작을 사용자 지정할 수 있습니다.


감사합니다.

Do it! SQL을 찾아 주셔서 감사합니다. ♥ 댓글이 큰 힘이 됩니다.

 

728x90

댓글