年份和周数的日期时间

时间:2016-07-22 14:06:23

标签: python datetime datetime-format

我有一年和一周的号码,我想将其转换为datetime.datetiem对象。我(天真?)阅读文档暗示strptime('2016 00', '%Y %W')应该这样做。但是:

In [2]: from datetime import datetime

In [3]: datetime.strptime('2016 00', '%Y %W')
Out[3]: datetime(2016, 1, 1, 0, 0)

In [4]: datetime.strptime('2016 52', '%Y %W')
Out[4]: datetime(2016, 1, 1, 0, 0)

我做错了什么?

2 个答案:

答案 0 :(得分:4)

事实证明,周数不足以让strptime获得日期。在字符串中添加一周的默认日期,以便它可以正常工作。

> from datetime import datetime
> myDate = "2016 51"
> datetime.strptime(myDate + ' 0', "%Y %W %w")
> datetime.datetime(2016, 12, 25, 0, 0)

0告诉它选择那周的星期日,但你可以在每天的0到6范围内改变它。

答案 1 :(得分:2)

来自docs(见底部注释7):

  

strptime()方法一起使用时,%U%W仅用于   当指定星期几和年份时的计算。

因此,只要您没有指定工作日,您就会有效地获得与datetime.strptime('2016', '%Y')相同的结果。