zenn.skin 무료버전 배포중!
자세히보기

Python/Syntax

[Python] 문자열 자료형을 datetime, date 자료형으로 변환

koosco! 2022. 5. 26. 14:57
from datetime import datetime

date = '2022-05-26'
date_time = datetime.strptime(date, "%Y-%m-%d")
only_date = date_time.date()
print(only_date)
print(type(only_date))

1) strptime

- datetime.datetime.strptime을 사용하면 문자열 객체를 날짜와 관련된 자료형(datetime, date)으로 변환할 수 있다

- datetime.strptime(date_string: str, format: str) -> datetime

- date_string : 문자열로 저장된 날짜 정보

- format : 입력된 문자열 date_string을 어떻게 읽을지(파싱할지) 알려준다

- format에서 사용하는 날짜 포맷에는 여러가지가 있는데 그 중 제일 많이 사용하는 연도, 월, 일, 시간은 다음과 같다

날짜 포맷 의미 ex
%Y 전체 년도 2020, 2021, 2022, ...
%y 두 자리로 표현된 년도 00, 01, ..., 98, 99
%m 0으로 패딩된 월 01, 02, ..., 11, 12
%d 0으로 패딩된 일 01, 02, ..., 30, 31
%H 0으로 패딩된 시간 00, 01, ..., 23
%M 0으로 패딩된 분 00, 01, ..., 59
%S 0으로 패딩된 초 00, 01, ..., 59

- 이외에도 필요에 따라 요일, 영어로 표현된 월이름,  오전/오후나 타임존 등 시간과 관련된 날짜 포맷을 사용가능

 

datetime — 기본 날짜와 시간 형 — Python 3.10.4 문서

datetime — 기본 날짜와 시간 형 소스 코드: Lib/datetime.py datetime 모듈은 날짜와 시간을 조작하는 클래스를 제공합니다. 날짜와 시간 산술이 지원되지만, 구현의 초점은 출력 포매팅과 조작을 위한

docs.python.org

왼쪽 메뉴에서  "strftime()과 strptime() 포맷코드" 항목을 누르면 관련된 날짜 포맷을 모두 확인할 수 있다

 

2) 기본 동작

from datetime import datetime

date1 = '20220526151314'
date2 = '2022-05-26 15:13:15'
date3 = '2022/05/26 15_13_16'

print(datetime.strptime(date1, "%Y%m%d%H%M%S"))
print(datetime.strptime(date2, "%Y-%m-%d %H:%M:%S"))
print(datetime.strptime(date3, "%Y/%m/%d %H_%M_%S"))

 반환결과인 datetime은 입력값으로 받은 문자열의 포맷과는 상관없이 YYYY-MM-DD HH:MM:SS 형식을 갖는다

문자열처럼 보이지만 해당 결과는 datetime이므로 슬라이싱이나 문자열이 갖는 메소드는 사용 불가능하다

 

3) 시간을 제외한 날짜만 추출

from datetime import datetime

date = '2022-05-26'
date_time = datetime.strptime(date, "%Y-%m-%d")
print(date_time)
print(type(date_time))

날짜 정보만 갖고 있는 문자열에 대해 strptime 메소드를 사용하면 별도로 포맷을 정의하지 않아도 뒤에 00:00:00 이라는 시간이 붙게 된다. strptime은 datetime을 반환하기 때문에 이렇게 반환하는데 datetime.date() 메소드를 이용해 날짜 정보만 얻을 수 있다.

from datetime import datetime

date = '2022-05-26'
date_time = datetime.strptime(date, "%Y-%m-%d")
only_date = date_time.date()
print(only_date)
print(type(only_date))

 

'Python/Syntax'의 다른글

  • 현재글 [Python] 문자열 자료형을 datetime, date 자료형으로 변환

관련글