我正在编写一些需要操纵一年中某一周的脚本。
我的输入采用YYYYWW
格式,例如'201435'
。
在我尝试使用strptime
时,由于某种原因,默认为一年中的第一天。例如:
import datetime
test = '201435'
test = datetime.datetime.strptime(test,'%Y%U')
print(test)
输出
2014-01-01 00:00:00
我不确定为什么会这样做。使用time
模块或将%U
替换为%W
会产生完全相同的结果。
答案 0 :(得分:4)
阅读the documentation中的注释6:
与
strptime()
方法一起使用时,%U
和%W
仅用于 当指定星期几和年份时的计算。
因此,由于您没有指定该周的某一天,因此会忽略周数,并且您将获得一年中的第一天。要解决这个问题,请添加一天:
>>> datetime.datetime.strptime('2014350', '%Y%U%w')
# ^ here ^ and here
datetime.datetime(2014, 8, 31, 0, 0)