Python

라이브러리 활용하기 - date/time

yugyeong 2022. 11. 22. 11:28

 

파이썬에서는 날짜/요일 처리를 할 때 datetime 라이브러리를 활용한다.

 

 

날짜 다루기

 

라이브러리 호출은 from datetime import date 로 한다.

 

 

 

date 모듈은 아래와같이 date(년, 월, 일)로 작성을 한다.

아래와같이 date( 2022, 5, 8 )을 작성하면 파이썬 형식으로 값이 리턴된다.

리턴된 값은 변수에 저장할 수 있다.

 

 

작성한 date(년, 월, 일) 에서 년도, 월, 일의 값을 각각 리턴받고 싶다면 아래와같이 속성값을 호출하면 된다.

some_day.year 속성을 이용하면 년도가 출력되고, some_day.month 속성을 이용하면 월이 출력된다.

 

 

 

some_day.weekday()를 사용하면 요일이 출력된다.

 

 

요일은 월요일부터 일요일까지의 값을 0부터 6까지의 숫자로 표현한다. 

 

 

날짜 정보가 담겨있는 변수.isoformat() 을 이용하면 사람이 보기 좋은 형태로 값이 리턴된다.

 

 

만약 날짜 정보를 원하는 형태로 리턴 받고자 한다면 strftime()을 이용하면 된다.

아래와같이 some_dat.strftime( %Y/%m/%d )로 입력하면 2022/05/08 형태로 리턴받는다.

%Y는 네자리 년도수를 의미( %y => 소문자y는 두자리수 년도를 의미한다 ) 하고 %m은 달을 의미, %d는 일을 의미한다.

리턴받고자 하는 형태를 strftime( ) 괄호안에 입력해주면 입력 방식대로 값이 리턴된다.

 

 

리턴받고자 하는 형태는 아래의 그림을 참고하면 된다.

 

 

 

시각 다루기

 

시각을 다루는 모듈은 from datetime import time 으로 호출한다.

 

 

시각은 time 함수로 나타낼 수 있고, 나타낸 결과를 변수에 저장할 수 있다.

아래에서는 some_time변수에 시각을 저장했다.

 

 

모듈에 포함된 속성을 이용하여 시간, 분, 초를 나타낼 수 있다.

some_time.hour 속성을 이용하면 11 이 리턴되고, .minute 속성을 이용하면 분, second 속성을 이용하면 초가 리턴된다.

isoformat() 함수를 이용하면 파이썬 형식으로 저장된 시간 정보가 사람이 읽기 좋은 형식으로 리턴된다.

 

 

일시를 동시에 나타낼 때

 

2001-02-03 04:05:06 의 각 속성값을 나타내고자 할 때 아래의 그래프를 참고하면 된다.

 

 

현재시간 가져오기

 

현재시간을 가져오고자 한다면, datetime.today()를 이용하면 된다.

파이썬 형식으로 현재 시간이 결과로 리턴된다.

 

 

 

문자열로 되어 있는 날짜를, 파이썬이 계산할 수 있도록 하는 방법

 

 

아래와같이 문자열로 되어있는 데이터의 요일을 구하기 위해서 변수weekday() 함수를 이용하면 오류가 발생한다

 

 

 

오류가 발생하는 이유는 지금까지 날짜 시간을 나타낼 때, 파이썬 형식으로 데이터를 불러온 후 사람이 읽기 편한 형태인 문자열로 변환을 하여서 여러가지 속성을 이용하였기 때문이다.

 

이번에는 문자열 형태의 데이터를 파이썬의 형식으로 변환하는 방법이다.

변환 하기 위해서는 from dateutil.parser import parse 모듈을 사용하면 된다.

 

 

 

parse() 괄호 안에 변수 date_str 을 넣으면 문자열로 저장돼있던 날짜 정보가 파이썬 형식으로 출력된다.

파이썬 형식으로 저장된 데이터에 .weekday()를 사용하면 오류 없이 요일이 출력된다.

 

 

'2022/06/30' , '2022-06-30 14:25' 와 같은 형식도 parse를 이용하여 파이썬 형식으로 나타낼 수 있다.

 

 

특정일로부터 원하는 날짜 계산하기

 

특정일로부터 원하는 날짜를 계산하기 위해서는

from dateutil.relativedelta import relativedelta 모듈을 사용해준다.

 

오늘날짜로부터 26일 후를 출력하고자 한다면, today + relativedelta(days =+ 26)이라고 작성하면 오늘로부터 26일 후의 날짜의 결과가 리턴된다.

 

 

relativedelta() 에서 괄호 안에 들어갈 단어들은 아래를 참고하면 된다.

 

 

아래는 2022-05-22 일을 기준으로 1년 3개월 8일 13시간 후의 날짜를 구하는 실행 결과이다.

 

 

두 날짜의 차이를 구한다

 

두 날짜의 차이를 구하고자 할 때는 rellativedelta()를 이용한다.

 

 

 

사람의 언어로 저장된 날짜 정보를 파이썬 형식으로 변환할 때는 datetime.striptime()을 이용한다.