%W将第一个星期一定为第1周,但ISO定义第1周为1月4日。所以从
datetime.strptime('2011221', '%Y%W%w')
如果第一个星期一和1月4日分别在不同的星期内,请假。如果1月4日是星期五,星期六或星期日,则后者是这种情况。因此,以下应该工作:
from datetime import datetime, timedelta, date
def tofirstdayinisoweek(year, week):
ret = datetime.strptime('%04d-%02d-1' % (year, week), '%Y-%W-%w')
if date(year, 1, 4).isoweekday() > 4:
ret -= timedelta(days=7)
return ret