English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Python 기본 튜토리얼

Python 흐름 제어

Python 함수

Python 데이터 타입

Python 파일 작업

Python 객체와 클래스

Python 날짜와 시간

Python 고급 지식

Python 참조 가이드

Python strptime()

이 문서에서는 문자열에서 datetime 객체를 생성하는 방법을 배울 것입니다. (예제를 통해 배웁니다).

strptime() 메서드는 주어진 문자열에서 datetime 객체를 생성합니다.datetime객체.

주의:각 문자열에서 datetime 객체를 생성할 수 없습니다. 문자열은 특정 형식을 가져야 합니다.

예제1:데이터와 시간 객체의 문자열

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()는 어떻게 작동하나요?

strptime() 클래스 메서드는 두 가지 매개변수를 가집니다:

  • 문자열(날짜와 시간으로 변환됨)

  • 포맷 코드

사용하는 문자열과 포맷 코드에 따라 이 메서드는等效한 datetime 객체를 반환합니다.

위의 예제에서:

이곳에서는:

  • %d-每个月的一天进行表示。예제: 01,02,...,31

  • %B-월의 전체 이름입니다.예를 들어:January, February 등

  • %Y-연도는 4자리로 표현됩니다.예를 들어: 2018、2019등

예제2:데이터와 시간 객체의 문자열

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
%zUTC 변위, 형식은+ 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

주어진 문자열(첫 번째 인자)과 포맷 코드(두 번째 인자)의 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()