根据周数获取日期 (python)

Get a date based on week number (python)

我正在编写一个脚本,用户需要在该脚本中输入周数,然后程序将运行 以此为基础。但是,我 运行 遇到了一个小问题,我知道我可以通过这样的方式获得周数:

>>> a=datetime.datetime.now()
>>> a
datetime.datetime(2015, 1, 22, 15, 51, 57, 820058)
>>> a.isocalendar()[1]
4

但我找不到倒退的方法。另外,我要求的日期必须是那个星期的星期日 6:00am。一旦我有了那个日期时间元素,我就可以做

begin_date = datetime.datetime.strptime(a, "%Y-%m-%d %H:%M:%S")

得到我想要的格式。我仍然缺少获取日期的步骤。有什么想法吗?

我们创建 2015 年的初始日期时间(2014-12-28 6:00:00 -- 第 1 周的第一个星期日),以及 7 天的 timedelta 对象:

w0 = datetime.datetime(2014,12,28,6)
d7 = datetime.timedelta(7)

然后您可以像这样简单地将 timedelta 对象的倍数添加到初始日期(n 将是您的周数):

w0+(d7*n)
>>> now = datetime.datetime.now()
>>> start = datetime.datetime(2015, 1,1)
>>> (now - start).days // 7
3