본문 바로가기
Python

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

by eyoo 2022. 4. 27.

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

 

날짜와 시간에 관한 편집을 하려면 먼저 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일이 지났다는것을 확인할수있다.

댓글