擅长:python、mysql、java
<p>%W将第一个星期一设为第1周,但ISO将第1周定义为包含1月4日。所以结果来自</p>
<pre><code>datetime.strptime('2011221', '%Y%W%w')
</code></pre>
<p>在1月1日星期一和1月4日是不同的一周。
如果1月4日是星期五、星期六或星期日,则属于后者。
因此,以下方法应该有效:</p>
<pre><code>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
</code></pre>