假设我有给定年份的周数(例如,2014年的第6周)。

如何将其转换为该周开始的星期一的日期?

我想到的一种蛮力解决方案是遍历一年中的所有星期一:

date1 = datetime.date(1,1,2014)
date2 = datetime.date(12,31,2014)
def monday_range(date1,date2):
    while date1 < date2:
        if date1.weekday() == 0:
            yield date1
        date1 = date1 + timedelta(days=1)

并存储从今年的第一个星期一到最后一个星期一的哈希,但这不会这样做,因为一年的第一周可能不包含星期一。

最佳答案

您可以将数据输入 time.asctime()

>>> import time
>>> week = 6
>>> year = 2014
>>> atime = time.asctime(time.strptime('{} {} 1'.format(year, week), '%Y %W %w'))
>>> atime
'Mon Feb 10 00:00:00 2014'

编辑:
要将其转换为datetime.date对象:
>>> datetime.datetime.fromtimestamp(time.mktime(atime)).date()
datetime.date(2014, 2, 10)

关于python - 将周数转换为日期,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22789198/

10-14 17:57