This question already has answers here:
What's the best way to find the inverse of datetime.isocalendar()?

(8个答案)


5年前关闭。



datetime模块提供了一种date.isocalendar方法,给定一个日期,它以([year], [week], [weekday])格式返回。我该如何后退?给定一个([year], [week], [weekday])元组,如何获得date对象?

最佳答案

编辑找到的问题与解决方案:
What's the best way to find the inverse of datetime.isocalendar()?

我的解决方案有错误。在谷歌搜索中看到了先前的问题,该问题在以下测试中有效。 (有关iso_to_gregorian的定义,请参见上面链接中回答最多的问题)。 (基本上找到iso年的开始日期,然后使用timedelta从天和周中找到当前日期。

for i in range(-10000,10000,1):
    x = datetime.datetime.today().date() + datetime.timedelta(i)
    x_iso = datetime.datetime.isocalendar(x)
    assert iso_to_gregorian(*x_iso) == x

10-08 00:30