2021-04-24 09:22:37

만약 4/21/2021이라는 문자열을 April 21, 2021 또는 2021-04-21로 변환하고 싶다면 어떻게 해야할까요? 여러가지 방법이 있겠지만, 저는 datetime 모듈을 활용해서 해결해보겠습니다. 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
import datetime
 
date = '4/21/2021'
print(type(date), date)
 
date_temp = datetime.datetime.strptime(date, "%m/%d/%Y")
print(type(date_temp), date_temp)
 
date1 = date_temp.strftime("%Y-%m-%d")
print(type(date1), date1)
 
date2 = date_temp.strftime("%B %d, %Y")
print(type(date2), date2)
cs

 

위 코드를 실행하면 다음과 같은 결과가 출력됩니다. 이해를 돕기 위해 데이터의 타입도 함께 출력되게 했습니다. 

 

 

위 예제에서 중요한 함수는 두 개입니다. 하나는 strptime() 메소드이고, 또 다른 하나는 strftime() 메소드입니다.

 

 

 

strptime 메소드

strptime()의 역할은 문자열의 각 위치가 날짜 및 시간 정보 중 무엇을 의미하는지 알려줍니다.

 

"4/21/2021에서 4는 월, 21은 일, 2021은 연도 정보야."  

 

strftime 메소드

strftime()의 역할은 datetime 객체를 원하는 형식(format)의 문자열로 표현해줍니다. 

 

"이제 년, 월, 일이 뭔지 알았지? 날짜를 %Y-%m-%d 형식 또는 %B %d, %Y로 표현해줘."

 

%Y, %m, %d, %B 등을 포맷 코드라고 부르는데 각각 다음의 의미를 갖습니다. 1988년 2월 11일을 예로 들어 설명하겠습니다.

 

%Y - 연도 1988

%y - 연도 88 

%B - 월 February

%b  - 월 Feb

%m - 월 02

%d - 일 11

 

포맷 코드에 대한 자세한 내용은 아래 링크 건 포스팅을 참고하세요.

[python] datetime 모듈 strftime 메소드, 포맷(format) 코드 정리