Python

[파이썬] 라이브러리: datetime, weekday, isoformat, strftime, parse, relativedelta

eyoo 2022. 4. 27. 12:32

날짜와 시간과 관련된 라이브러리와 함수들을 알아보자

 

날짜와 시간에 관한 편집을 하려면 먼저 datetime 라이브러리를 활용해야 한다.

 

from datetime import date

 

 

파이썬이 처리할수 있는 날짜를 만들어 보자

 

in:

some_day = date(2022,5,8)

 

 

해당 날짜가 저장된 변수에 year, month 등의 함수들을 이용해 날짜정보를 불러올수 있다.

 

연도 불러오기:

 

in:

some_day.year

out:

2022

 

 

월 불러오기:

 

in:

some_day.month

out:

5

 

 

일자 불러오기:

 

in:

some_day.day

out:

8

 

 

요일 불러오기:

 

in:

some_day.weekday()

out:

6

# 월요일 0번부터 일요일 6번까지 설정되어 있다.

 

 

isoformat함수를 이용하여 표준 날짜 형식으로 날짜를 불러올수 있다.

 

in:

some_day.isoformat()

out:

'2022-05-08'

 

 

strftime를 통해 다른 기타 날짜 형식으로 표시할수 있다.

 

' / '로 년월일을 나누고 싶을때

 

in:

some_day.strftime('%Y/%m/%d')

out:

'2022/05/08'

 

 

한글을 사용하여 표시하고 싶을때

 

in:

some_day.strftime('%Y년 %m월 %d일')

out:

'2022년 05월 08일'

 

파이썬을 통해 날짜를 다뤄봤으니 시간도 다뤄보자

 

datetime의 time도 임포트 해보자

from datetime import time

 

파이썬이 처리할수 있는 시간을 만들어보자 (오후 4시 33분 24초)

 

in:

sometime = time(16,33,24)

 

 

time 라이브러리의 hour, minute 등의 함수를 통해 시, 분 데이터를 가져올수 있다.

 

hour 데이터 가져오기

 

in:

sometime.hour

out:

16

 

 

minute 데이터 가져오기

 

in:

sometime.minute

out:

33

 

 

날짜와 마찬가지로 시간도 isoformat 함수를 통해 표준 형식으로 불러올수 있다.

 

in:

sometime.isoformat()

out:

'16:33:24'

 

 

또한 strftime함수를 이용하여 원하는 형식으로 바꿔줄수 있다.

 

in:

sometime.strftime('%I:%M %p')

out:

'04:33 PM'

 

날짜와 시간데이터 모두 활용해보자

 

datetime 라이브러리를 임포트하자

 

from datetime import datetime

 

 

today함수와 now함수를 활용해 현재 일시를 가져올수 있다.

 

in:

datetime.today()

혹은

datetime.now()

out:

datetime.datetime(2022, 4, 27, 11, 5, 57, 276716)

 

 

today 변수로 지정하자

 

today = datetime.today()

 

 

date 함수와 time함수로 날짜와 시간을 나타낼수 있다.

 

date함수

 

in:

today.date()

out:

datetime.date(2022, 4, 27)

 

 

time함수

 

in:

today.time()

out:

datetime.time(11, 6, 38, 395565)

 

 

역시 isoformat를 통해 표준형식으로 일시를 나타낼수 있다.

 

in:

today.isoformat()

out:

'2022-04-27T11:06:38.395565'

 

 

지역에 따라 다른 시간의 특성상 표준시와 local시각을 설정하게 되어있다.

 

UTC 현재 시각

 

in:

import time
time.gmtime()

out:

time.struct_time(tm_year=2022, tm_mon=4, tm_mday=27, tm_hour=2, tm_min=16, tm_sec=16, tm_wday=2, tm_yday=117, tm_isdst=0)

 

 

local 시각

 

in:

time.localtime()

out:

time.struct_time(tm_year=2022, tm_mon=4, tm_mday=27, tm_hour=11, tm_min=16, tm_sec=28, tm_wday=2, tm_yday=117, tm_isdst=0)

 

 

time.time 함수는 1970년 1월 1일 자정 이후로 누적된 초를 float 단위로 반환한다.

 

in:

time.time()

out:

1651025844.6994636

 

 

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

 

parse함수를 이용해보자

 

in:

from dateutil.parser import parse
date_str = '2022-05-08'
someday = parse(date_str)
someday

out:

 
 

 

datetime.datetime(2022, 5, 8, 0, 0)

# dateutil.parser를 불러와 parse를 임포트 하고 parse함수를 사용하면 된다.

 

 

특정일로부터 원하는 날짜를 계산해보자

 

in:

from dateutil.relativedelta import relativedelta
date(2022,5,22) + relativedelta(days= +53)

out:

datetime.date(2022, 7, 14)

# dateutil.relativedelta를 불러와 relativedelta를 임포트 하고 특정일자에 relativedelta함수를 더해준다.

# relativedelta함수 안에는 년, 월, 일 단위로 계산할수 있으며 +하면 후, - 하면 전일로 계산할수 있다.

 

 

relativedelta함수로 두 날짜의 차이를 구할수도 있다.

 

in:

start_day = parse('2022-01-23')
today = date.today()
relativedelta(today, start_day)

out:

relativedelta(months=+3, days=+4)

# 시작일로부터 3달하고 4일이 지났다는것을 확인할수있다.