파이썬에서 문자열로 된 날짜 데이터를 datetime 객체로 변환해야 하는 경우가 자주 있습니다. 예를 들어 사용자 입력이나 CSV 파일에서 읽어온 '29/12/2017' 같은 날짜 문자열을 실제 날짜 타입으로 바꿔야 연산, 비교, 정렬 등 다양한 작업을 수행할 수 있습니다.
strptime() 함수를 이용한 변환
문자열을 datetime 객체로 변환하려면 datetime.strptime() 함수를 사용합니다. 이 함수는 두 개의 인자를 받습니다.
- date_str: 변환할 날짜 문자열
- format_str: 해당 문자열의 날짜 형식(포맷 코드)
포맷 코드는 %d(일), %m(월), %Y(4자리 연도) 등으로 구성되며, 문자열의 실제 형태와 정확히 일치해야 합니다.
예제 코드
import datetime
date_str = '29/12/2017' # 날짜 문자열 - 2017년 12월 29일
format_str = '%d/%m/%Y' # 날짜 형식 지정
datetime_obj = datetime.datetime.strptime(date_str, format_str)
print(datetime_obj.date())
실행 결과
위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.
2017-12-29
자주 사용되는 포맷 코드
날짜 형식에 따라 아래와 같은 포맷 코드를 조합하여 사용할 수 있습니다.
%d— 일 (01~31)%m— 월 (01~12)%Y— 4자리 연도 (예: 2017)%y— 2자리 연도 (예: 17)%H,%M,%S— 시, 분, 초
예를 들어 '12/29/2017'처럼 월이 앞에 오는 mm/dd/yyyy 형식이라면 포맷 문자열을 '%m/%d/%Y'로 지정하면 됩니다. 문자열 형식과 포맷 코드가 일치하지 않으면 ValueError가 발생하므로 주의해야 합니다.