본문 바로가기
Research/Python

Python_문자열을 날짜 형식으로 바꾸기

by RIEM 2021. 10. 9.

Problem

웹크롤링을 진행하는 중 '21.09.28'와 같이 날짜를 표현한 문자열 데이터를 수집했다. 수집한 날짜 문자열 데이터를 날짜 형식으로 변경하려면 어떻게 해야할까?

 

Solving

문자열 날짜 형식 바꾸기 관련해서 구글링을 하다가 'datetime.strptime()' 메소드를 알게되었다. strptime은 datetime 모듈의 메소드다. 파이썬 docs에 의하면 아래와 같다. 

date.strftime(format)
Return a string representing the date, controlled by an explicit format string. Format codes referring to hours, minutes or seconds will see 0 values. ...

 

명시적인 Format이 핵심인 것으로 보인다. 활용 예제를 알아보자.

from datetime import datetime

date_data = datetime.strptime("2018-01-31", "%Y-%m-%d")
print(type(date_data))
print(date_data)

 

strptime의 첫 번째 인자에 날짜 str을 넣고, 두 번째 인자에서 첫 번째 인자의 형식을 지정해주면 된다는 것을 확인했다. 위 메소드를 활용해 수집한 날짜 문자열을 바꿔보자.

 

from datetime import datetime

date_example = '21.08.25'
date_data = datetime.strptime(date_example, "%y.%m.%d")
print(type(date_data))
print(date_data)

>> <class 'datetime.datetime'>
2021-08-25 00:00:00

날짜 객체로 반환된 것을 알 수 있다. 

 

다른 날짜 형식을 수정할 경우를 대비해 출처 페이지로부터 포맷 코드 테이블을 아래 첨부했다. 

 

Format Code

포맷 코드 설명
%a 요일을 짧게 표시합니다. Sun
%A 요일을 길게 표시합니다. Sunday
%w 요일을 숫자로 표시합니다. 일요일을 0부터 시작하여 토요일은 6입니다. 0
%d 날(day)을 출력합니다. 1부터 31까지가 있겠죠 18
%b 월을 영어로 짧게 출력해줍니다. Apr
%B 월을 영어로 길게 출력해줍니다. April
%m 월을 숫자로 표현합니다. 04
%y 년을 짧게 숫자로 표시합니다 21
%Y 년을 길게 숫자로 표시합니다. 2021
%H 시간을 24시간의 표현 방식(00-23)으로 숫자로 표시합니다. 18
%I 시간을 0-12시 표시 방법으로 표시합니다 6
%p 오전(AM), 오후(PM)을 표시합니다. PM
%M 분(0 - 59)을 표시합니다. 38
%S 초(0 - 59)를 표시합니다. 55
%f microsecond단위를 표시합니다. 545433
%j 일년중 몇번째일인지 나타냅니다. 108
%U 일년 중 몇번째 주 인지 나타내니다. 이 포맷에서 일요일은 일주일의 시작입니다. 일년은 52주, 53주입니다. 108
%W 일년 중 몇번째 주 인지 나타내는 것은 %U와 같지만 일주일의 시작을 월요일로 정합니다. 108
%c Local version의 날짜와 시간을 나타냅니다. Sun Apr 18 17:26:26 2021
%x Local version의 날짜만 나타냅니다. 04/18/21
%X Local version의 시간만 나타냅니다. 17:26:26

 

 

Reference

https://docs.python.org/3/library/datetime.html

https://www.delftstack.com/ko/howto/python/how-to-convert-string-to-datetime/#%25EB%25AC%25B8%25EC%259E%2590%25EC%2597%25B4%25EC%259D%2584-datetime-%25EC%259C%25BC%25EB%25A1%259C-%25EB%25B3%2580%25ED%2599%2598%25ED%2595%2598%25EB%258A%2594-datetime.strptime

- https://reakwon.tistory.com/172

'Research > Python' 카테고리의 다른 글

Jupyter notebook 셀의 결과물만 출력하는 방법  (0) 2021.10.18
F-string에 대해  (0) 2021.10.18
2차원 리스트에 대해  (0) 2021.10.18
Python의 map() 함수  (0) 2021.10.18
Pandas 데이터에 일괄 함수 적용하기  (0) 2021.10.18

댓글