2

Python で現在までの日時文字列を解析しようとしています。入力値は次の形式です。

     "February 19, 1989"

今まで頑張ってきた

     datetime.datetime.strptime("February 19, 1989", "%B %d, %y")

しかし、私は常にエラーが発生しています。そのような日付を解析する正しい方法は何ですか? ありがとうございました!

4

2 に答える 2

3

次の作品 (y小文字を大文字に変更Y):

datetime.datetime.strptime("February 19, 1989", "%B %d, %Y")

その理由は、それ%yが通年であるのに対し9998そのようなものです。%Yこれに関する完全なドキュメントはこちらで読むことができます

于 2016-07-31T05:28:07.947 に答える
1

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)

前述の回答と比較して、これの欠点は、追加のパッケージが必要になることです。利点は、フォーマット文字列を知らなくても、日付を決定するのにかなり適していることです。

于 2016-07-31T05:39:38.300 に答える