Strptime Weeks错误

时间:2015-08-19 16:47:46

标签: python datetime strptime

我正在编写一些需要操纵一年中某一周的脚本。 我的输入采用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会产生完全相同的结果。

1 个答案:

答案 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)