You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python 3.10中datetime的strftime与isocalendar结果不一致咨询

Python strftime与isocalendar年份不一致的原因

这不是strftime的错误,是格式符使用问题:

  • %Y 获取的是日期本身的公历年份,2022年1月1日的公历年确实是2022,所以strftime('%Y-%V')返回2022-52。
  • isocalendar()返回的是ISO周历法下的年份,根据ISO 8601标准,第52周的最后几天可能跨越到下一个公历年,但仍归属前一年的ISO周,所以2022年1月1日属于2021年的第52周。

要让strftime返回和isocalendar一致的年份,应该用%G格式符(ISO周所属年份),而不是%Y:

import datetime
datetime.date(2022, 1, 1).strftime('%G-%V')
# 返回 '2021-52'

简单总结:

  • %Y → 公历年
  • %G → ISO周年(和isocalendar().year对应)
  • %V → ISO周数

内容的提问来源于stack exchange,提问作者Pieter Hartel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 11:15:33