개발공부

[Python] 날짜 / 시간을 처리할 수 있는 datetime 모듈 본문

Python/Basic

[Python] 날짜 / 시간을 처리할 수 있는 datetime 모듈

mscha 2022. 4. 27. 18:05

파이썬에서는 datetime 모듈을 통해 날짜와 시간을 처리할 수 있다.

 

날짜관련은 datetime의 date를 통해 처리할 수 있다.

from datetime import date

 

날짜다루기

기본적으로 날짜를 선언하는 것은 date() 를 통해서 할 수 있다.

>>> some_day = date(2022, 5, 8)
>>> print(some_day)
2022-05-08

 

이렇게 만든 some_day의 타입은 datetime.date 이다.

>>> type(some_day)
datetime.date
 
이렇게 만들어진 some_day의 년, 월, 일 을 알 수 있는데,
이는 year, month, day로 확인 할 수 있다.
>>> some_day.year
2022
>>> some_day.month
5
>>> some_day.day
8​

 

 

 

 

시각 다루기

시각 관련은 datetime의 time를 통해 처리할 수 있다.

from datetime import time

 

기본적으로 날짜를 선언하는 것은 time() 를 통해서 할 수 있다.

>> sometime = time(16, 33, 24)
>>> print(sometime)
16:33:24

 

이렇게 만들어진 some_day의 년, 월, 일 을 알 수 있는데,
이는 year, month, day로 확인 할 수 있다.
>>> sometime.hour
16
>>> sometime.minute
33
>>> sometime.second
24

 

date관련 함수들

 

date.weekday()

 - 날짜의 요일을 알 수 있다.

 - {0:월, 1:화, 2:수, 3:목, 4:금, 5:토, 6:일}

 

>>> some_day = date(2022, 5, 8)
>>> print(some_day)
2022-05-08
#2022-05-08은 일요일이므로 6이 반환된다.
>>> some_day.weekday()
6

 

date.isoformat(), datetime.isoformat()

-ISO 8601 형식으로 날짜를 나타내는 문자열을 반환한다. YYYY-MM-DD:

>>> some_day = date(2022, 5, 8)
>>> print(some_day)
2022-05-08
>>> some_day.isoformat()
'2022-05-08'

 

>> sometime = time(16, 33, 24)
>>> print(sometime)
16:33:24
>>> sometime.isoformat()
'16:33:24'

date.strftime(format)

 - 명시적인 포맷 문자열로 제어되는, 날짜를 나타내는 문자열을 반환한다.

>>> some_day
'2022-05-08'

>>> some_day.strftime('%Y/%m/%d')
'2022/05/08'
>>> some_day.strftime('%Y/%m/%d %A')
'2022/05/08 Sunday'

 

>>> sometime
'16:33:24'

>>> sometime.strftime('%I:%M %p')
'04:33 PM'

date.today()

- 현재 지역 날짜를 반환한다.

# 오늘 날짜 구하기
>>> today = date.today()
>>> today
datetime.date(2022, 4, 27)

 

일시 다루기

일시 관련은 datetime의 datetime을 통해 처리할 수 있다.

from datetime import datetime

 

datetime.today(), datetime.now()

- 현재 지역의 년, 월, 일, 시, 분, 초가 모두 반환된다.

>>> today = datetime.today()
>>> print(today)
2022-04-27 17:58:18.666335
>>> print(datetime.now())
2022-04-27 17:59:42.762131

 

datetime.date(), datetime.time()

 - 각각 datetime의 날짜와 시간을 반환한다.

>>> today.date()
datetime.date(2022, 4, 27)
today.time()
>>> datetime.time(17, 58, 18, 666335)