본문 바로가기
Coding/Python

Python datetime으로 시간 더하고 빼는 방법

by Hide­ 2019. 3. 25.
반응형

보통 파이썬으로 시간 관련 작업을 할 때 datetime 라이브러리를 사용한다. 이번 작업에서는 현재시간에서 특정 시간을 더하고 빼는 과정이 필요했는데 그 과정을 포스팅에 담아본다.


from datetime import datetime

now = datetime.now().replace(microsecond=0)


위 라인을 차례대로 인터프리터에 입력해보면 아마 아래와 같은 값이 나올 것이다. (microsecond=0을 준 이유는 해당 옵션을 사용하지 않기 위함임. 제거해도 상관없다.)


datetime.datetime(2019, 3, 25, 12, 38, 46)


위 결과를 통해 알 수 있듯이 now()를 사용하면 현재 시간을 datetime객체로 반환해준다. 또한 내부적으로 __str__ 매직메소드가 구현되어 있기 때문에 print()를 해보면 다음과 같이 년도-월-일 시간-분-초 형태로 확인할 수 있다.


print(datetime.now().replace(microsecond=0)

2019-03-25 12:42:11


print하기전은 datetime 객체이므로 일반적인 + 1등으로 시간을 더하거나 뺄 수 없다. 따라서 객체의 형태를 맞춰서 정해진 형식으로 값을 넣어줘야하는데 이럴 때 timedelta를 사용할 수 있다.


from datetime import datetime, timedelta


now = datetime.now().replace(microsecond=0)
plus = timedelta(seconds=3600)
print(now)
print(now + plus)
print(now - plus)


위와 같이 입력하여 출력해보면 아마 다음과 같은 결과를 얻을 것이다.


2019-03-25 12:44:09

2019-03-25 13:44:09

2019-03-25 11:44:09


현재 시간을 기준으로 3600초를 더하고 뺀 모습을 확인할 수 있다.