Python で現在までの日時文字列を解析しようとしています。入力値は次の形式です。
"February 19, 1989"
今まで頑張ってきた
datetime.datetime.strptime("February 19, 1989", "%B %d, %y")
しかし、私は常にエラーが発生しています。そのような日付を解析する正しい方法は何ですか? ありがとうございました!
Python で現在までの日時文字列を解析しようとしています。入力値は次の形式です。
"February 19, 1989"
今まで頑張ってきた
datetime.datetime.strptime("February 19, 1989", "%B %d, %y")
しかし、私は常にエラーが発生しています。そのような日付を解析する正しい方法は何ですか? ありがとうございました!
次の作品 (y
小文字を大文字に変更Y
):
datetime.datetime.strptime("February 19, 1989", "%B %d, %Y")
その理由は、それ%y
が通年であるのに対し99
、98
そのようなものです。%Y
これに関する完全なドキュメントはこちらで読むことができます。
David's answerに加えて、さまざまな形式の文字列のリストがある場合 (たとえば、年が 2 桁のものと年が 4 桁のものなど)、パッケージを利用して、dateutil
これらの文字列を自動的に datetime オブジェクトに解析できます。
from dateutil import parser
dates = ["February 19, 1989", "February 19, 89", "February 19, 01"]
for d in dates:
print(parser.parse(d))
3 つの日時オブジェクトを出力します。
datetime.datetime(1989, 2, 19, 0, 0)
datetime.datetime(1989, 2, 19, 0, 0)
datetime.datetime(2001, 2, 19, 0, 0)
前述の回答と比較して、これの欠点は、追加のパッケージが必要になることです。利点は、フォーマット文字列を知らなくても、日付を決定するのにかなり適していることです。