我有一年和一周的号码,我想将其转换为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)
我做错了什么?
答案 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')
相同的结果。