121

私のコードの何が問題なのか教えてください:

import datetime
d = "2013-W26"
r = datetime.datetime.strptime(d, "%Y-W%W")
print(r)

「2013-01-01 00:00:00」と表示、ありがとう。

4

7 に答える 7

226

日付を生成するには週番号だけでは不十分です。曜日も必要です。デフォルトを追加します。

import datetime
d = "2013-W26"
r = datetime.datetime.strptime(d + '-1', "%Y-W%W-%w")
print(r)

-1and-%wパターンは、パーサーにその週の月曜日を選択するように指示します。これは以下を出力します:

2013-07-01 00:00:00

%W月曜日を週の最初の日として使用します。曜日を自由に選択できますが、それを逸脱すると予期しない結果が生じる可能性があります。

ドキュメントの脚注 4 の動作セクションを参照してくださいstrftime()strptime()

strptime()メソッドで使用する場合は、曜日と年を指定した場合にのみ計算に使用されます%U%W

週番号がISO の週の日付%G-W%V-%uである場合は、代わりに使用することをお勧めします。これらのディレクティブには、Python 3.6 以降が必要です。

于 2013-06-13T12:44:33.203 に答える