將週數轉換為日期
您在嘗試使用以下程式碼將週數轉換為日期時遇到了問題:
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中文網其他相關文章!