gpt4 book ai didi

python - 控制 datetime.isocalendar()

转载 作者:行者123 更新时间:2023-12-01 07:20:53 25 4
gpt4 key购买 nike

以下答案https://stackoverflow.com/questions/2600775/how-to-get-week-number-in-python,我正在使用datetime.isocalendar( ),更具体地说 datetime.isocalendar()[1] 来获取周数,例如:

import datetime as dt
dt.date(2015, 10, 16).isocalendar()[1]
>>> 42

乍一看没什么问题,只是结果与以下内容不同:

dt.date(2015, 10, 16).strftime('%W')
>>> '41'

有人可能会说,只要两种方法之间的 1 周差异对于所有日期都是一致的,就可以了。

但是在某些年末日期会出现一个重大问题,例如:

dt.date(2018, 12, 31).isocalendar()[1]
>>> 1

dt.date(2018, 12, 31).strftime('%W')
>>> 53

我不可能期望 datetime.isocalendar() 方法返回 2018 年 12 月 31 日的第 1 周。注意,编码器似乎遵循了 ISO standard ,参见here .

我怎样才能在一定程度上控制行为?

最佳答案

ISO 周有 52 或 53 整周。即 364 或 371 天,而不是通常的 365 或 366 天。

ISO 使用特殊的算法。您可以阅读更多here 。所以它有很多优点,比如所有周都有 7 天,并且每周属于一年。

使用其中一种类型取决于您解决的任务。

关于python - 控制 datetime.isocalendar(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57707515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com