1. ホーム
  2. python

[解決済み] 時刻データがフォーマットと一致しない

2022-02-10 20:15:36

質問

以下のエラーが発生します。

time data '07/28/2014 18:54:55.099000' does not match format '%d/%m/%Y %H:%M:%S.%f'

しかし、どのパラメータがおかしいのかがわかりません。 %d/%m/%Y %H:%M:%S.%f ?

これは私が使っているコードです。

from datetime import datetime
time_value = datetime.strptime(csv_line[0] + '000', '%d/%m/%Y %H:%M:%S.%f')

を追加したり削除したりしました。 000 が、同じエラーが出ます。

どうすればいいですか?

月と日が入れ替わっています。

'%m/%d/%Y %H:%M:%S.%f'

28 の範囲に収まることはないでしょう。 %m 月パラメータを使用します。

%m%d を正しい順番で並べると、パース処理がうまくいきます。

>>> from datetime import datetime
>>> datetime.strptime('07/28/2014 18:54:55.099000', '%m/%d/%Y %H:%M:%S.%f')
datetime.datetime(2014, 7, 28, 18, 54, 55, 99000)

を追加する必要はありません。 '000' ; %f は短い数字を正しくパースすることができます。

>>> datetime.strptime('07/28/2014 18:54:55.099', '%m/%d/%Y %H:%M:%S.%f')
datetime.datetime(2014, 7, 28, 18, 54, 55, 99000)