산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> python

Python strptime() 완전 정복: 문자열을 datetime 객체로 정확하게 파싱하기

Python strptime(): 문자열을 datetime 객체로 변환

이 가이드에서는 Python의 datetime.strptime() 메서드를 사용하여 문자열로부터 datetime 객체를 생성하는 방법을 실용적인 예제와 포괄적인 형식 코드 참조와 함께 보여줍니다.

동영상: Python에서 날짜와 시간 다루기

공식 Python 튜토리얼을 시청하여 datetime 처리에 대한 이해를 높이세요.

strptime() 메서드는 지정된 형식을 따르는 문자열로부터 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 %B, %Y는 다음을 의미합니다:


예제 2: 모호한 날짜 파싱

from datetime import datetime
dt_string = "12/11/2018 09:15:32"  # 일/월/년 형식 가정
dt_object1 = datetime.strptime(dt_string, "%d/%m/%Y %H:%M:%S")
print("dt_object1 =", dt_object1)
# 월/일/년 형식 가정
dt_object2 = datetime.strptime(dt_string, "%m/%d/%Y %H:%M:%S")
print("dt_object2 =", dt_object2)

프로그램 출력은 다음과 같습니다:

dt_object1 = 2018-11-12 09:15:32
dt_object2 = 2018-12-11 09:15:32

전체 형식 코드 목록

아래 표는 strptime()에서 사용할 수 있는 모든 지시자를 요약합니다. 전체 문서는 Python 공식 datetime 모듈 가이드를 참조하세요.

지시자의미예시
%a줄임 요일 이름Sun, Mon, ...
%A전체 요일 이름Sunday, Monday, ...
%w요일(십진수)0, 1, ..., 6
%d월별 일(제로 패딩)01, 02, ..., 31
%-d월별 일(패딩 없음)1, 2, ..., 30
%b줄임 월 이름Jan, Feb, ..., Dec
%B전체 월 이름January, February, ...
%m월 번호(제로 패딩)01, 02, ..., 12
%-m월 번호(패딩 없음)1, 2, ..., 12
%y세기 없는 연도(제로 패딩)00, 01, ..., 99
%-y세기 없는 연도(패딩 없음)0, 1, ..., 99
%Y세기 포함 연도2013, 2019, ...
%H시간(24시간제, 제로 패딩)00, 01, ..., 23
%-H시간(24시간제, 패딩 없음)0, 1, ..., 23
%I시간(12시간제, 제로 패딩)01, 02, ..., 12
%-I시간(12시간제, 패딩 없음)1, 2, ..., 12
%p로케일의 AM/PMAM, PM
%M분(제로 패딩)00, 01, ..., 59
%-M분(패딩 없음)0, 1, ..., 59
%S초(제로 패딩)00, 01, ..., 59
%-S초(패딩 없음)0, 1, ..., 59
%f마이크로초(제로 패딩)000000 – 999999
%zUTC 오프셋(+HHMM 또는 –HHMM)
%Z시간대 이름
%j연중 일(제로 패딩)001, 002, ..., 366
%-j연중 일(패딩 없음)1, 2, ..., 366
%U주 번호(일요일 우선)00, 01, ..., 53
%W주 번호(월요일 우선)00, 01, ..., 53
%c로케일의 날짜 및 시간Mon Sep 30 07:06:05 2013
%x로케일의 날짜09/30/13
%X로케일의 시간07:06:05
%%리터럴 퍼센트 기호%

흔한 오류: 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 data '12/11/2018' does not match format '%d %m %Y'

추천 읽기: Python strftime()

python

  1. 파이썬 키워드와 식별자: 예약어와 명명 규칙 마스터하기
  2. 파이썬 데이터 타입 마스터하기: 실전 가이드
  3. 파이썬 연산자 마스터하기: 종합 가이드
  4. 파이썬 pass 문 마스터하기: 실전 가이드
  5. 파이썬 함수 인자 마스터하기: 위치, 키워드, 기본 매개변수
  6. Python 딕셔너리 마스터하기: 생성, 조작, 고급 기법
  7. Python 이터레이터: 작동 원리와 직접 만들기
  8. Python 클로저 이해하기: 중첩 함수가 변수 캡처하는 방법
  9. Python 정규표현식(re 모듈) 실전 가이드
  10. Python datetime 마스터하기: 날짜, 시간, 타임존 실전 가이드