일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- graphql
- Notification
- 자바스크립트
- 디자인
- navigation
- 네이티브
- 스코프
- 카카오
- 후기
- MongoDB
- AWS
- scope
- github
- React
- 배포
- Express
- 면접
- Background
- EC2
- 알림
- NATIVE
- Push
- 변수
- ubuntu
- JavaScript
- 리액트
- JS
- 레이아웃
- 네비게이션
- Python
- Today
- Total
어서와, 개발은 처음이지?
파이썬 datetime 날짜 계산 본문
파이썬 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 |
---|