코딩재개발 RSS 태그 관리 글쓰기 방명록
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) 코드 정리

글을 읽던 중에 궁금했던 부분은 질문해주세요.
칭찬, 지적, 의문, 격려, 감사표현 등을 남겨주세요.
최대한 답변 드리도록 노력하겠습니다.
욕설과 광고를 담은 댓글은 가차없이 삭제합니다.
비밀글