Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで日付検証を行う方法は?


Pythonで達成したい日付の検証は、使用している日付の形式に大きく依存します。日時ライブラリの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
10進数としての月の日[01,31]。
%H
10進数としての時間(24時間制)[00,23]。
%I
10進数としての時間(12時間制)[01,12]。
%j
10進数としての年の日[001,366]。
%m
10進数としての月[01,12]。
%M
10進数としての分[00,59]。
%p
ロケールはAMまたはPMに相当します。
%S
10進数として2番目[00,61]。
%U
10進数としての年の週番号(日曜日を週の最初の日)[00,53]。最初の日曜日に先行する新年のすべての日は、第0週と見なされます。
%w
10進数としての平日[0(日曜日)、6]。
%W
10進数としての年の週番号(月曜日を週の最初の日)[00,53]。最初の月曜日に先行する新年のすべての日は、第0週と見なされます。
%x
ロケールの適切な日付表現。
%X
ロケールの適切な時間表現。
%y
10進数としての世紀のない年[00,99]。
%Y
10進数として世紀を使用する年。
%Z
タイムゾーン名(タイムゾーンが存在しない場合は文字なし)。
%%
リテラルの「%」文字



  1. Pythonプログラムで10進数を2進数に変換する

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 − 10進数が与えられているので、それに相当する2進数に変換する必要があります。 与えられた問題を解決するための2つのアプローチがあります。それらを1つずつ見てみましょう- 再帰的アプローチ 例 def DecimalToBinary(num):    if num > 1:       DecimalToBinary(num // 2)    print(num % 2, end = '') # main if _

  2. 与えられた番号がPythonプログラムでフィボナッチ数であるかどうかを確認するにはどうすればよいですか?

    この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 数nが与えられたら、nがフィボナッチ数であるかどうかを確認します n番目のフィボナッチ数は前の2つのフィボナッチ数の合計であることは誰もが知っています。しかし、それらは漸化式以外の興味深い関係も提供します。 (5 * n2 + 4)または(5 * n2 – 4)が完全な正方形である場合に限り、数値は本質的にフィボナッチです。 このプロパティを使用して、数値がフィボナッチであるかどうかを確認します。 では、Pythonスクリプトの実装を見てみましょう- 例 import math # if x is p