1. ホーム
  2. python

[解決済み] 週番号から日付を取得する

2022-09-01 08:43:57

質問

私のコードのどこが問題なのでしょうか?

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

表示 "2013-01-01 00:00:00"、ありがとうございます。

どのように解決するのですか?

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

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

-1-%w パターンはパーサーにその週の月曜日を選ぶように指示します。これは出力されます。

2013-07-01 00:00:00

%W は週の初めの日として月曜日を使用します。自分の好きな曜日を選ぶことができますが、そこから外れると予期せぬ結果が出るかもしれません。

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

と共に使用する場合 strptime() というメソッドがあります。 %U%W は、曜日と年が指定されているときのみ計算に使用されます。

なお、週番号が ISO 週番号 である場合は %G-W%V-%u を使いたいでしょう。これらのディレクティブは Python 3.6 以降を必要とします。