어서와, 개발은 처음이지?

파이썬 datetime 날짜 계산 본문

Python

파이썬 datetime 날짜 계산

오지고지리고알파고포켓몬고 2018. 7. 23. 21:44
반응형

파이썬 datetime 모듈을 이용해 날짜 계산하는 법을 알아보겠습니다.


파이썬은 datetime이라는 패키지 모듈을 지원하고 있습니다.

이 중 날짜는 datetime클래스를 통해 나타내고, 날짜의 차는 timedelta 클래스를 통해 나타냅니다. 



1.날짜 생성

from datetime import datetime, timedelta

time1 = datetime(2018, 7, 13, 21, 40, 5)
print(time1) # 2018-07-13 21:40:05

날짜는 다음과 같이 datetime(년, 월, 일, 시, 분, 초, 밀리 초)로 초기화 할 수 있습니다.

위 time1은 2018년 7월 13일 21시 40분 5초를 나타내고 있습니다.



2.두 날짜의 차이 계산

from datetime import datetime, timedelta

time1 = datetime(2018, 7, 13, 21, 40, 5)
time2 = datetime.now()
print(time1) # 2018-07-13 21:40:05
print(time2) # 2018-07-23 20:58:59.666626

print(time2-time1) # 9 days, 23:18:54.666626
print(type(time2-time1)) # <class 'datetime.timedelta'>

datetime.now() 함수를 사용하면 현재 날짜를 구할 수 있습니다.

현재 날짜를 time2에 넣고, time2 - time1를 연산하여 두 날짜의 차를 구합니다.


이렇게 연산된 값은 timedelta 클래스로 반환되는데요.

timedelta값은 days와 seconds, miliseconds를 통해 시간 차의 일 수, 초, 밀리 초에 접근할 수 있습니다.

print('두 날짜의 차')
print((time2-time1).days, '일') # 9 일
print((time2-time1).seconds, '초') # 83934 초

print((time2-time1).seconds / 3600, '시간') # 23.315 시간

2018년 7월 23일 20시 58분 59초(time2)와 2018년 7월 13일 21시 40분 5초(time1)는 9일 83934초 차이가 난다고 합니다.

약간의 초 계산만 해준다면 xx일 xx시간 xx분 xx초 까지 정확하게 표시할 수 있습니다.



3.특정 날짜로부터 시간 계산

from datetime import datetime, timedelta

print('현재 시간부터 5일 뒤')
print(time2 + timedelta(days=5)) # 2018-07-28 20:58:59.666626
print('현재 시간부터 3일 전')
print(time2 + timedelta(days=-3)) # 2018-07-20 20:58:59.666626
print('현재 시간부터 1일 뒤의 2시간 전')
print(time2 + timedelta(days=1, hours=-2)) #2018-07-24 18:58:59.666626

우리는 timedelta를 사용하여 특정 날짜로부터 상대적 날짜를 계산할 수 있습니다.


timedelta의 파라미터로 days(일), hours(시), minutes(분), seconds(초), microseconds(마이크로 초), miliseconds(밀리 초), weeks(주 - 1주는 7일을 변동시킵니다)를 제공합니다.

양수는 이후, 음수는 이전을 뜻합니다.


timedelta(days=5)는 5일 뒤를 뜻합니다.

time2에 timedelta(days=5)를 더하면 5일 뒤의 datetime을 얻을 수 있습니다.


time2 + timedelta(days=-3, hours=2, minutes=-10) 이면, 특정 날짜의 '3일 전의 2시간 후의 10분 전'을 구하게 됩니다.


약간 헷갈릴 수 있지만 time2 - timedelta(days=5)라고 연산하면 5일 전을 구하게 됩니다.

덧셈과 뺄셈 연산에 유의하세요.



4.마치며


이상으로 파이썬 datetime을 이용한 날짜 계산에 대한 내용을 마치겠습니다.

잘못된 부분이나 질문이 있으시다면 댓글로 남겨주세요!



'Python' 카테고리의 다른 글

파이썬 replace() 문자열 제거, 수정(변환)  (14) 2019.02.24
8 Comments
댓글쓰기 폼