小编典典

Python datetime.strptime月说明符似乎不起作用

python

月格式说明符似乎不起作用。

from datetime import datetime
endDate = datetime.strptime('10 3 2011', '%j %m %Y')
print endDate
2011-01-10 00:00:00 
endDate = datetime.strptime('21 5 1987', '%j %m %Y')
print endDate 
1987-01-21 00:00:00

现在,根据手册,手册

%m =月,十进制数[01,12]。

那么,除了我试图理解我的django
__filter查询为什么什么都不返回(输入的日期无效!)的原因之外,我还缺少什么呢?我已经尝试了0305但无济于事。

事物,平台,架构等的版本:

$ python --version
Python 2.7
$ python3 --version
Python 3.1.2
$ uname -r
2.6.35.11-83.fc14.x86_64 (that's Linux/Fedora 14/64-bit).

阅读 373

收藏
2021-01-20

共1个答案

小编典典

您不能将它们%j与其他格式的代码混合使用,%m因为如果您在表中查看的话,所链接的%j是十进制数字[001,366],因此该年的10天与该年的10天相对应,因此它是01一月

所以你只需要写:

>>> datetime.strptime('10 2011', '%j %Y')
datetime.datetime(2011, 1, 10, 0, 0)

否则,如果您想使用10作为挂载日,则应该执行以下操作:

>>> datetime.strptime('10 3 2011', '%d %m %Y')
datetime.datetime(2011, 3, 10, 0, 0)
2021-01-20