あなたはまた、日付の形式を検証したい場合(すなわち、それは、そのような01/02/99など、すべて単一のフォーマットであることを確認)、あなたが
from datetime import datetime
datetime_object = datetime.strptime(your_date_string_here, '%d/%m/%Y')
を使用することができますこれがあればdatetimeオブジェクトを返します。日付は有効です。それ以外の場合は失敗します。
>>> datetime_object = datetime.strptime('29/02/2017', '%d/%m/%Y')
ValueError: day is out of range for month
また、異なるフォーマットでも失敗します。
>>> datetime_object = datetime.strptime('29-02-2017', '%d/%m/%Y')
Traceback (most recent call last):
ValueError: time data '29-02-2017' does not match format '%d/%m/%Y'
あなたが複数のフォーマットを扱うことができるようにしたい場合は、ほとんどの日付形式を解析することができますdateutil
パッケージ、見てみましょう。
from dateutil import parser
dt = parser.parse(your_date_string_here)
これは無効な日付のエラーをスローしますが、異なるフォーマットを処理します。
ここでは、テキストボックスから取得したデータから月/日を解析するために書いたいくつかのプロダクションコードのサンプルを紹介します。このアプリケーションは決して年を気にしないので、それを解析するように '2000'のダミー値に設定します。 https://gist.github.com/anonymous/98efe5bb46c4a790c3b8d51e2a594132 –
@AdamSmith私はそれを感謝します! –
@hamsterbyte問題ありません。 N.B.この関数は、失敗した日付のバブルを次のコード層に渡すように設計されています。つまり、 'make_date'が日付文字列のソースもUIを話す責任も持たないので、呼び出しコードは失敗した日付を処理する必要があります。 –