Python Date(날짜) 본문

프로젝트/파이썬

Python Date(날짜)

뚜스머리 2017. 8. 8. 10:00

<이전 블로그 자료>


Python을 사용함에 있어 날짜관련한 계산이 필요한 경우가 있다.


내가 접한 문제는

내가 입력한 기간을 일정한 기간으로 분한할 필요가 있는데

이를 두달 단위로 나눠야 한다는 것이다.

여기서 월별로 나누는 기능이 필요했다.


https://docs.python.org/2/library/datetime.html


파이썬 홈페이지를 참고하여 datetime을 사용하였다.


기본적으로 날짜를 선언하기 위해선

1
2
3
import datetime
 
date = datetime.date(2017,1,2)
cs


위와 같이 선언하면 된다.

Text로 선언한 후 , 파싱할 수도 있다.


다음으로 date로부터 일정 기간을 더하거나 빼고 싶을 경우

1
2
3
4
5
6
7
8
import datetime
from datetime import timedelta
 
date = datetime.date(2017,1,2)
td = timedelta(days=+1)
 
tomorrow = date + td
 
cs

와 같이 사용하면 된다.

그러나 timedelta 변수의 경우

days , second, microsecond 값에 대해서 시간을 변경하기 때문에

년, 월 단위의 변경이 필요한 경우 불편할 수 있다.


그런 경우 dateutil을 이용해주자

내가 dateutil을 쓰는 이유는 월단위로의 변환이 필요하기 때문이다.


예를들어 2017년 1월 1일로부터 한달이 지난 값을 구하게 되면

1
2
3
4
5
6
7
8
9
import datetime
from datetime import timedelta
from dateutil.relativedelta import relativedelta
 
date = datetime.date(2017,1,1)
rd = relativedelta(months=1)
 
next_month = date + rd
 
cs

와 같이 사용하면 된다.


또한 두 date 사이의 간격을 구할 수 있는데

1
2
3
4
5
6
7
import datetime
from dateutil.relativedelta import relativedelta
 
start = datetime.date(2015,3,1)
end = datetime.date(2017,1,1)
 
print relativedelta(start,end)
cs

위 소스를 실행하면 결과는 

relativedelta(years=-1, months=-10)

와 같이 나오게 된다.


참고 사이트 

https://dateutil.readthedocs.io/en/stable/