我有一个ISO 8601周数,比如201801 - 相当于2018年第1周。
如何使用python提取一周内的日期?
答案 0 :(得分:0)
我会得到那个星期的星期日,然后从那开始给你7天。根据您在第52周要执行的操作,您可能需要删除break
from datetime import datetime, timedelta
def days_from_weekstr(weekstr):
sunday = datetime.strptime(weekstr + "-0", "%Y%W-%w")
year = sunday.year
for i in range(7):
day = sunday + timedelta(1) * i
if day.year != year:
break
yield day.date()
>>> list(days_from_weekstr("201801"))
[datetime.date(2018, 1, 7), datetime.date(2018, 1, 8), datetime.date(2018, 1, 9), datetime.date(2018, 1, 10), datetime.date(2018, 1, 11), datetime.date(2018, 1, 12), datetime.date(2018, 1, 13)]