Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 날짜 유효성 검사를 수행하는 방법은 무엇입니까?


파이썬에서 달성하고자 하는 날짜 유효성 검사는 보유한 날짜 형식에 따라 크게 달라집니다. datetime 라이브러리의 strptime 함수는 문자열을 날짜/시간으로 구문 분석하는 데 사용할 수 있습니다.

예시

import datetime
date_string = '2017-12-31'
date_format = '%Y-%m-%d'
try:
  date_obj = datetime.datetime.strptime(date_string, date_format)
  print(date_obj)
except ValueError:
  print("Incorrect data format, should be YYYY-MM-DD")

출력

이것은 출력을 제공합니다 -

2017-12-31 00:00:00

다른 많은 지시문을 사용하여 날짜를 구문 분석할 수 있습니다. 다음은 strptime()의 형식 문자열이 지원하는 지시문입니다.

지시어
의미
%a
로케일의 축약된 요일 이름입니다.
%A
로케일의 전체 요일 이름입니다.
%b
로케일의 축약된 월 이름입니다.
%B
로케일의 전체 월 이름.
%c
로케일의 적절한 날짜 및 시간 표현.
%d
십진수 [01,31]로 된 월의 일.
%H
십진수로 표시되는 시간(24시간제) [00,23].
%I
십진수로 표시한 시(12시간제) [01,12].
%j
십진수 [001,366]로 표시되는 일.
%m
십진수로 표시한 월 [01,12].
%M
10진수로 된 분 [00,59].
%p
로케일은 AM 또는 PM에 해당합니다.
%S
10진수로 표시한 초 [00,61].
%U
10진수 [00,53]로 표시된 연도의 주 번호(일요일이 해당 주의 첫 번째 요일)입니다. 새해 첫 번째 일요일 이전의 모든 날은 0주에 있는 것으로 간주됩니다.
%w
10진수로 나타낸 평일 [0(일요일),6].
%W
10진수 [00,53]로 표시된 연도의 주 번호(월요일이 주의 첫 번째 요일)입니다. 새해 첫 번째 월요일 이전의 모든 날은 0주에 있는 것으로 간주됩니다.
%x
로케일의 적절한 날짜 표현.
%X
로케일의 적절한 시간 표현.
%y
십진수로 세기가 없는 연도 [00,99].
%Y
십진수로 세기를 포함하는 연도.
%Z
시간대 이름(시간대가 없으면 문자 없음).
%%
리터럴 "%" 문자