5

文字列を日時オブジェクトに変換しようとしていました。ニュース フィードから取得した文字列は次の形式です: "Thu, 16 Oct 2014 01:16:17 EDT"

datetime.strptime() を使用して変換してみました。つまり、

datetime.strptime('Thu, 16 Oct 2014 01:16:17 EDT','%a, %d %b %Y %H:%M:%S %Z')

そして、次のエラーが発生しました:

トレースバック (最新の呼び出しが最後):
  ファイル ""、1 行目、datetime.strptime('Thu, 16 Oct 2014 01:16:17 EDT','%a, %d %b %Y %H:%M: %S %Z')
  ファイル "C:\Anaconda\lib_strptime.py"、325 行目、_strptime (data_string, format))
ValueError: 時間データ 'Thu, 16 Oct 2014 01:16:17 EDT' が形式と一致しません'%a, %d %b %Y %H:%M:%S %Z'

ただし、「EDT」なしで文字列を試してみると、うまくいきました。つまり、

datetime.strptime('Thu, 16 Oct 2014 01:16:17','%a, %d %b %Y %H:%M:%S')

その「EDT」部分を解析する方法を知っている人はいますか?

4

2 に答える 2

1

email.utils.parsedate_tz() ソリューションは 3 文字のタイムゾーンには適していますが、AEDT や CEST などの 4 文字では機能しません。ミックスが必要な場合は、Parsing date/time string with timezone abbreviated name in Python?の回答を参照してください。最も一般的に使用されるタイム ゾーンの両方で機能します。

于 2021-04-16T16:55:48.013 に答える