Python

[Python] strftime과 strptime

jolocal 2025. 1. 23. 10:19
728x90

Python을 사용하여 개발을 하다 보면 날짜를 다뤄야 하는 일이 정말 많다.

항상 검색하여 사용하다 한번 정리해보자! 라는 생각으로 글을 써본다.

 

생각해보니 평소에 제일 많이 사용하는 두 함수가 `strftime`과 `strptime`인 것 같다.

 

날짜와 시간(datetime)을 문자열로 출력하려면 `strftime`

날짜와 시간 형식의 문자열을 datetime으로 변환하려면 `strptime`을 사용하면 된다.

 

기본적인 사용 방법은 다음과 같다.

import datetime
now = datetime.datetime.now()

date = now.strftime('%Y-%m-%d')
print(date)      # 2021-04-08
 
time = now.strftime('%H:%M:%S')
print(time)      # 21:28:20
 
datetime = now.strftime('%Y-%m-%d %H:%M:%S')
print(datetime)  # 2021-04-08 21:28:20

 

위와 같이 datetime을 문자열로 변환할 수 있고 `datetime.strftime(형식)`으로 사용할 수 있다.

다음으로 strptime의 경우

import datetime
 
str_datetime = '2021-04-08 21:31:48'
currdate = datetime.datetime.strptime(str_datetime, '%Y-%m-%d %H:%M:%S')

print(type(currdate)) 	# [class 'datetime.datetime']

 

위와 같이 사용할 수 있으며 `datetime.strptime(문자열, 형식)`의 형태로 사용된다.

 

거의 매일 사용한다고 해도 과언이 아닐 정도의 함수들이니 이번 기회에 확실히 정리하여

개발 시에 검색하는 시간을 줄일 수 있으면 좋겠다.

 

마지막으로 strftime과 strptime 사용 시 적용 가능한 형식은 이곳에 잘 정리되어 있지만, 

대표적인 것 몇개만 적어본다.

 

%y 두 자리 수의 연도  19, 20, 21
%Y 네 자리 수의 연도  2019, 2020, 2021
%m 0을 채운 두 자리 수의 월 01, 02 ... 11, 12
%d 0을 채운 두 자리 수의 일 01, 02 ... 30, 31
%I 0을 채운 12시간제의 시간 01, 02 ... 23
%H 0을 채운 24시간제의 시간 00, 01 ... 23
%M 0을 채운 두 자리 수의 분 00, 01 ... 58, 59
%S 0을 채운 두 자리 수의 초 00, 01 ... 58, 59
728x90