[파이썬] 라이브러리: datetime, weekday, isoformat, strftime, parse, relativedelta
날짜와 시간과 관련된 라이브러리와 함수들을 알아보자
날짜와 시간에 관한 편집을 하려면 먼저 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일이 지났다는것을 확인할수있다.