[Python] strftime & strptime 비교 정리

2022. 5. 25. 00:07Python

날짜 및 시간은 표현 방법이 매우 다양하고, 입력 형식에 따라 string, numeric, datetime 과 같은 타입을 가질 수 있다. 이와 같은 날짜형 데이터를 원하는 형태로 변경하기 위해서 꼭 알아야할 메서드로 strftime 과 strptime 이 있다. 두 메서드의 차이를 이해하기 위해 이름의 의미와 역할에 대해 정리해보았다.


1. 요약

  이름 (f/p) 역할
strftime f (format) datetime → string
strptime p (parse) string → datetime

 

2. strftime

strftime 은 날짜형 객체를 주어진 포맷의 문자열로 변환한다.
(예시)

from datetime import datetime

dt = datetime(2022,5,1,12,30,0)
dt_to_str = dt.strftime("%Y/%m/%d")

print(dt)
print(dt_to_str)

(출력) strftime 적용 전/후

datetime 객체 이외에 date, time 객체에도 적용 가능하다.

3. strptime

strptime 은 문자열을 주어진 포맷으로 읽어 datetime 객체로 변환한다.
(예시)

from datetime import datetime

str1 = "2022-12-25"
str2 = "25/12/22"
str3 = "20221225"

str_to_dt1 = datetime.strptime(str1, "%Y-%m-%d")
str_to_dt2 = datetime.strptime(str2, "%d/%m/%y")
str_to_dt3 = datetime.strptime(str3, "%Y%m%d")

print(str_to_dt1)
print(str_to_dt2)
print(str_to_dt3)

(출력) strptime 적용 전/후

예시와 같이 다양한 형태로 표현된 '2022년 12월 25일' 문자열을 동일한 datetime 객체로 변환하여 출력되는 것을 확인할 수 있다. strptime 은 strftime 과 달리 datetime 객체에만 적용할 수 있다.


pandas dataframe 에 적용할 경우 datetime 형 변수를 원하는 문자열로 변환하기 위해 strftime 함수를 사용할 수 있다. 하지만 문자열을 datetime 객체로 변환하기 위해서는 strptime이 아닌 pd.to_datetime() 함수를 사용해야 한다.

4. 참고

[1] https://www.delftstack.com/ko/howto/python/how-to-convert-string-to-datetime/
[2] https://velog.io/@hyelimchoi1223/Python-strptime-vs-strftime