본문 바로가기

Python

[python] datetime 날짜와 시간 차이 구하기

반응형

파이썬으로 두 날짜 간의 차이를 알고 싶다면 어떻게 해야할까?

또는 시간 차이를 알려면?

 

시간 차이 구하는 법

from datetime import datetime

# 현재 시간을 가져온다.
now = datetime.now()
print(now)

# 비교할 과거 시점에 대한 정보
past = datetime.strptime("20210305", "%Y%m%d")
print(past)

# 단순히 빼주기만 하면 두 시간의 차이를 구할 수 있다.
diff = now - past
print(diff)

출력

2021-06-26 20:48:48.724421
2021-03-05 00:00:00
113 days, 20:48:48.724421

단순히 datetime 형식의 두 날짜를 - 해주면 된다.

 

여기서 일수 차이 및 추가적인 시간 차이를 구하고 싶다면 아래와 같이 날짜 차이와 시간 차이를 구할 수 있다. 

 

일 수 차이 및 시간 차이 구하기

from datetime import datetime

now = datetime.now()
print(now)

past = datetime.strptime("20210305", "%Y%m%d")
print(past)

diff =  now - past
print(diff)

# days를 통해 일 수(days) 차이 정보를 가져올 수 있다. 
print("Day difference : ", diff.days)

# seconds 통해 시간 차이 정보를 초 단위로 가져올 수 있다. 
print("Second difference : ", diff.seconds)

# seconds 통해 시간 차이 정보를 마이크로초 단위로 가져올 수 있다. 
print("MicroSecond difference : ", diff.microseconds)

 

diff.days를 통해 두 시간 정보에서 일 수의 차이를 쉽게 구할 수 있다.

구체적인 시간 정보는 diff.seconds, diff.microseconds를 통해 구할 수 있다.

시간 및 분에 대한 정보는 제공하지 않아서 seconds로 부터 계산해서 구해야 한다.

 

1분은 60초를 뜻하고 1시간은 3600초를 뜻하니 시간과 분 정보는 아래와 같이 구할 수 있다.

 

from datetime import datetime

now = datetime.now()
print(now)

past = datetime.strptime("20210305", "%Y%m%d")
print(past)

diff =  now - past
print(diff)

print("Day difference : ", diff.days)
print("Second difference : ", diff.seconds)
print("MicroSecond difference : ", diff.microseconds)

# Seconds -> minutes / hours
print("Hour difference : ", diff.seconds/3600)
print("Minute difference : ", diff.seconds/60)

출력

2021-06-26 20:57:19.662274
2021-03-05 00:00:00
113 days, 20:57:19.662274
Day difference :  113
Second difference :  75439
MicroSecond difference :  662274
Hour difference :  20.955277777777777
Minute difference :  1257.3166666666666

즉 2021년 6월 26일 20시 57분 19초와 

2021년 3월 5일 0시 0분 0초의 차이는

 

총 113일하고 75439초 차이가 난다. 

반응형