English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 문서에서는 문자열에서 datetime 객체를 생성하는 방법을 배울 것입니다. (예제를 통해 배웁니다).
strptime() 메서드는 주어진 문자열에서 datetime 객체를 생성합니다.datetime객체.
주의:각 문자열에서 datetime 객체를 생성할 수 없습니다. 문자열은 특정 형식을 가져야 합니다.
from datetime import datetime date_string = "21 June, 2018" print("date_string =", date_string) print("date_string 데이터 타입 =", type(date_string)) date_object = datetime.strptime(date_string, "%d %B, %Y") print("date_object =", date_object) print("date_object 데이터 타입 =", type(date_object))
이 프로그램을 실행할 때, 출력은 다음과 같습니다:
date_string = 21 June, 2018 date_string 데이터 타입 = <class 'str'> date_object = 2018-06-21 00:00:00 date_object 데이터 타입 = <class 'datetime.datetime'>
strptime() 클래스 메서드는 두 가지 매개변수를 가집니다:
문자열(날짜와 시간으로 변환됨)
포맷 코드
사용하는 문자열과 포맷 코드에 따라 이 메서드는等效한 datetime 객체를 반환합니다.
위의 예제에서:
이곳에서는:
%d-每个月的一天进行表示。예제: 01,02,...,31
%B-월의 전체 이름입니다.예를 들어:January, February 등
%Y-연도는 4자리로 표현됩니다.예를 들어: 2018、2019등
from datetime import datetime dt_string = "12/11/2019 09:15:32" # 날짜는 dd입니다 / mm / yyyy 형식 dt_object1 = datetime.strptime(dt_string, "%d/%m/%Y %H:%M:%S") print("dt_object1 =", dt_object1) # 날짜는 mm입니다 / dd / yyyy 형식 dt_object2 = datetime.strptime(dt_string, "%m/%d/%Y %H:%M:%S") print("dt_object2 =", dt_object2)
이 프로그램을 실행할 때, 출력은 다음과 같습니다:
dt_object1 = 2019-11-12 09:15:32 dt_object2 = 2019-12-11 09:15:32
다음 표는 사용할 수 있는 모든 포맷 코드를 나열합니다.
명령 | 의미 | 예제 |
%a | 근무일 이름의 약자입니다. | Sun, Mon, ... |
%A | 근무일의 전체 이름입니다. | Sunday, Monday, ... |
%w | 근무일을 십진수로 표현합니다. | 0,1,...,6 |
%d | 월의 일을 0으로 채워진 십진수로 표현합니다. | 01,02,...,31 |
%-d | 십진수로 표현된 월의 일입니다. | 1,2,...,30 |
%b | 월의 약자입니다. | Jan, Feb, ..., Dec |
%B | 전체 월 이름입니다. | January, February, ... |
%m | 월을 0으로 채워진 십진수로 표현합니다. | 01、02,...,12 |
%-m | 십진수로 표현된 월입니다. | 1,2,...,12 |
%y | 세기가 없는 연도는 0으로 채워진 십진수입니다. | 00、01,...,99 |
%-y | 세기가 없는 연도를 십진수로 사용합니다. | 0,1,...,99 |
%Y | 세기를 십진수의 연도로 사용합니다. | 2013、2019등 |
%H | 시간(24시간 제도) 0을 추가한 십진수입니다. | 00、01,...,23 |
%-H | 시간(24시간제) 데카달 숫자로 표현. | 0,1,...,23 |
%I | 시간(12시간제),0으로 채운 데카달 숫자. | 01、02,...,12 |
%-I | 시간(12시간제) 데카달 숫자로 표현. | 1 2 2 |
%p | 언어 환경의 오전 또는 오후. | AM,PM |
%M | 분, 0으로 채운 δεκαdal 숫자. | 00、01,...,59 |
%-M | 데카달 숫자로 표현. | 0,1,...,59 |
%S | 두 번째로 0으로 채운 δεκαdal 숫자. | 00、01,...,59 |
%-S | 두 번째 δεκαdal 숫자. | 0,1,...,59 |
%f | マイ크로초, δεκαdal 숫자, 왼쪽에 0으로 채운. | 000000-999999 |
%z | UTC 변위, 형식은+ HHMM 또는-HHMM。 | |
%Z | 시간대 이름. | |
%j | 연도 중의 일, 0으로 채운 δεκαδical 숫자로 표현. | 001,002,...,366 |
%-j | 연도 중 몇 번째 일, δεκαδικό 숫자로 표현. | 1,2,...,366 |
%U | 연도 중 몇 번째 주(일요일이 주의 첫 번째 날). 첫 번째 일요일 전의 다음 연도의 모든 날은 0주로 간주됩니다. | 00、01,...,53 |
%W | 연도 중 몇 번째 주(월요일이 주의 첫 번째 날). 첫 번째 월요일 전의 다음 연도의 모든 날은 0주로 간주됩니다. | 00、01,...,53 |
%c | 언어 환경의 적절한 날짜와 시간 표현. | Mon Sep 30 07:06:05 2013 |
%x | 언어 환경의 적절한 날짜 표현 형식. | 13/9/30 |
%X | 언어 환경의 적절한 시간 표현 형식. | 07:06:05 |
%% | 문자 "%" 문자. | % |
주어진 문자열(첫 번째 인자)과 포맷 코드(두 번째 인자)의 strptime()가 맞지 않으면 ValueError를 얻습니다. 예를 들어:
from datetime import datetime date_string = "12/11/2018" date_object = datetime.strptime(date_string, "%d %m %Y") print("date_object =", date_object)
이 프로그램을 실행하면 오류가 발생합니다.
ValueError: time data12/11/2018does not match format '%d %m %Y'
추천 독서: Python strftime()