3 回答
慕容森
TA贡献1853条经验 获得超18个赞
周数不足以生成日期。您也需要一周中的某一天。添加默认值:
import datetime
d = "2013-W26"
r = datetime.datetime.strptime(d + '-1', "%Y-W%W-%w")
print(r)
在-1和-%w模式告诉解析器挑周一在那一周。输出:
2013-07-01 00:00:00
%W将星期一作为一周的第一天。尽管您可以选择自己的工作日,但是如果您偏离工作日,则可能会得到意想不到的结果。
请参阅文档中的strftime()和strptime()行为部分的脚注4:
当与使用strptime()方法,%U并%W指定了一周,一年中的一天,在计算仅使用。
请注意,如果您的星期数是ISO星期日期,那么您将改为使用%G-W%V-%u!这些指令需要Python 3.6或更高版本。
BIG阳
TA贡献1859条经验 获得超6个赞
要完成其他答案-如果您使用的是ISO周数,则此字符串是适当的(获取给定ISO周数的星期一):
import datetime
d = '2013-W26'
r = datetime.datetime.strptime(d + '-1', '%G-W%V-%u')
print(r)
%G,%V,%u是ISO当量%Y,%W,%w,所以这个输出:
2013-06-24 00:00:00
Python 3.6及更高版本中的Availabe;来自docs。
添加回答
举报
0/150
提交
取消