从年和周开始的日期时间

2024-10-03 00:31:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个年份和一个星期的数字,我想把它转换成一个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)

我做错什么了?在


Tags: 对象infrom文档importdatetime数字out
2条回答

所以结果是周数不足以让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的范围内对每天进行更改。在

docs(见底部注释7):

When used with the strptime() method, %U and %W are only used in calculations when the day of the week and the year are specified.

因此,只要不指定工作日,就可以得到与datetime.strptime('2016', '%Y')相同的结果。在

相关问题 更多 >