개요
Python을 이용해 오늘의 매시 정각, 정오 또는 어제 날짜를 계산하고 싶다.
케이스대로 예시를 정리해둔다.
현재 시각 구하기
datetime 모듈을 사용하면 현재 시각을 '2022-10-11 21:07:36.221681'와 같은 형식으로 구할 수 있다.
import datetime
# Local Timezone
print(datetime.datetime.now())
print(datetime.datetime.today())
# UTC
print(datetime.datetime.utcnow())
기본적으론 컴퓨터에 설정된 시간대를 기준으로 확인하지만, utcnow 함수를 사용하면 UTC 기준으로 확인한다.
time 모듈을 사용할 수도 있다.
import time
# Local Timezone
print(time.localtime())
# UTC
print(time.gmtime())
정각 계산
datetime 모듈의 replace 함수를 사용하면 객체의 연, 월, 일, 시 등의 값을 변경할 수 있다. 엄밀히 말해 datetime 객체는 불변하기 때문에 새 객체를 생성하는 것과 동일하다.
import datetime
curtime = datetime.datetime.now()
print(curtime.replace(minute=0, second=0, microsecond=0))
오늘 날짜 구하기
datetime 모듈의 replace 함수를 사용하거나, 시:분:초 출력이 필요하지 않다면 date.today 함수를 사용할 수 있다.
import datetime
curtime = datetime.datetime.now()
print(curtime.replace(hour=0, minute=0, second=0, microsecond=0))
# 시간 출력 없는 경우
print(datetime.date.today())
어제 날짜 구하기
datetime.timedelta는 기간을 표현하기 위해 사용하며, 생성자는 주/일/시/분/초/밀리초 등을 인자로 받는다.
from datetime import timedelta
print(timedelta(days=5, hours=17, minutes=30))
timedelta를 이용하면 산술/대소 연살자를 사용할 수 있어 직관적인 날짜/시간 계산이 가능하다. 아래는 어제 날짜를 구하는 예시이다.
import datetime
curtime = datetime.datetime.now()
one_day = datetime.timedelta(days=1)
yesterday = curtime - one_day
print(curtime)
print(yesterday)
참고 문서
https://skogkatt.tistory.com/87