datetime ISO week 表示一年中的第一天和最后一天都在同一周

datetime ISO week says first and last day of year are both in same week

我是 运行 Python 3.8.3,我发现 ISO Week 格式 (%V) 有一些奇怪的地方:

2019年的第一天和最后一天都在第一周

from datetime import date
print(date(2019, 1, 1).strftime('%Y-W%V'))
print(date(2019, 12, 29).strftime('%Y-W%V'))
print(date(2019, 12, 31).strftime('%Y-W%V'))

输出:

2019-W01  
2019-W52  
2019-W01

为什么会这样?

完全正确。

正如您在日期中看到的那样,它们都在 2019 中,因此 %Y 得到 2019 年是正确的。

周数由ISO定义,因此可以考虑上一年或下一年的一周。

您需要使用 %G 来获取星期几 (%V)。