首頁  >  文章  >  後端開發  >  為什麼在 Python 中將週數轉換為日期會失敗並出現「2013-W26」?

為什麼在 Python 中將週數轉換為日期會失敗並出現「2013-W26」?

Linda Hamilton
Linda Hamilton原創
2024-11-11 02:31:03281瀏覽

Why Does Converting Week Numbers to Dates in Python Fail with

將週數轉換為日期

您在嘗試使用以下程式碼將週數轉換為日期時遇到了問題:

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」模式新增在此修改中至關重要。 「-1」告訴解析器選擇該特定週中的星期一,「-%w」調整相對於星期一的星期幾。例如,如果提供的周數對應於星期一,則使用“-%w”將返回星期日。

%W 和腳註4 的行為

在Python 文件中strftime() 和strptime() 行為部分,腳註4 提供了寶貴的見解:「與strptime () 方法一起使用時,%U 和%W 僅在指定星期幾和年份時用於計算。週日期,則可以使用%G-W%V-%u 代替。這些指令需要 Python 3.6 或更高版本。

以上是為什麼在 Python 中將週數轉換為日期會失敗並出現「2013-W26」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn