datetime.datetime 모듈

12063 단어 pythonpython

Python의 datetime.datetime 모듈 활용에 관한 포스팅 입니다.

날짜 & 시간을 활용할 시에는 datetime.datetime 모듈을 사용합니다.

현재 날짜 & 시간 문자열 출력

datetime 모듈의 datetime.now()를 사용하여 현재 날짜 & 시간을 알 수 있습니다.

예시

from datetime import datetime


def today_info():
    now = datetime.now()  # datetime.datetime 객체
    today_date = now.strftime("%Y년 %m월 %d일")
    now_time = now.strftime("%H시 %M분 %S초")
    print(f'{today_date} {now_time}')

출력 결과는 아래와 같습니다.

2021년 02월 02일 22시 26분 27초

strftime VS. strptime

strftime() 함수는 datetime.datetime 객체 -> 문자열 로 변환할 때,
strptime() 함수는 문자열 -> datetime.datetime 객체 로 변환할 때 사용합니다.

strftime 예시

from datetime import datetime

today = datetime.today()  # datetime.datetime 객체
print(type(today), today)

date_format = "%Y-%m-%d"
today_str = today.strftime(date_format)  # 문자열
print(type(today_str), today_str)

출력 결과

<class 'datetime.datetime'> 2021-02-02 21:42:00.160815
<class 'str'> 2021-02-02

strptime 예시

문자열 -> datetime.datetime 객체로 변환할 때에는 반드시 문자열과 날짜/시간 포맷을 맞춰줘야 합니다. 포맷을 맞추지 않을 경우, ValueError가 발생합니다.

from datetime import datetime

tmp_str = "2021.02.02 23:18:20"  # 문자열
print(type(tmp_str), tmp_str)

date_format = "%Y.%m.%d %H:%M:%S"
tmp_datetime = datetime.strptime(tmp_str, date_format)  # datetime.datetime 객체
print(type(tmp_datetime), tmp_datetime)

출력 결과

<class 'str'> 2021.02.02 23:18:20
<class 'datetime.datetime'> 2021-02-02 23:18:20

datetime 객체 -> date 객체로 변환

날짜 & 시간 문자열로부터 날짜만 추출하고 싶을 때, 문자열에서 날짜만 추출하는 방법도 있겠지만, 문자열을 datetime.datetime 객체로 변환한 다음 date() 함수를 사용하면 편리합니다.

from datetime import datetime

datetime_text = '2021-11-24 23:57'  # 날짜 & 시간 문자열
datetime_time = datetime.strptime(datetime_text, '%Y-%m-%d %H:%M')  # datetime.datetime 객체로 변환
print(type(datetime_time), datetime_time)

date_time = datetime_time.date()  # datetime.date 객체로 변환
print(type(date_time), date_time)

출력 결과

<class 'datetime.datetime'> 2021-11-24 23:57:00
<class 'datetime.date'> 2021-11-24

날짜 & 시간 비교

datetime.datetime 객체

문자열 자료형을 datetime.datetime 객체로 우선 변환한 후, 비교 연산자 >, <를 사용하여 날짜 & 시간을 비교할 수 있습니다.

from datetime import datetime

# 날짜 & 시간 문자열
previous_time_text = '2021.11.25. 00:13'
now_time_text = '2021.11.25. 00:27'

date_format = '%Y.%m.%d. %H:%M'

# 문자열 -> datetime.datetime 객체로 변환
previous_time = datetime.strptime(previous_time_text, date_format)
now_time = datetime.strptime(now_time_text, date_format)

# 비교 연산자 사용하여 날짜 & 시간 비교
print(previous_time < now_time)
print(previous_time > now_time)

출력 결과

True
False

datetime.date 객체

위와 마찬가지로 문자열 자료형을 datetime.date 객체로 변환한 후, 비교 연산자 >, <를 사용하여 날짜만 비교할 수도 있습니다.

from datetime import datetime

# 날짜 & 시간 문자열
previous_time_text = '2021.11.24. 23:53'
now_time_text = '2021.11.25. 00:13'

date_format = '%Y.%m.%d. %H:%M'

# 문자열 -> datetime.date 객체로 변환
previous_date = datetime.strptime(previous_time_text, date_format).date()
now_date = datetime.strptime(now_time_text, date_format).date()

# 비교 연산자 사용하여 날짜 비교
print(previous_date < now_date)
print(previous_date > now_date)

출력 결과

True
False

Reference

https://docs.python.org/3/library/datetime.html

좋은 웹페이지 즐겨찾기