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

3 python datetime python-3.x

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

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
Run Code Online (Sandbox Code Playgroud)

现在,根据手册手册:

%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).
Run Code Online (Sandbox Code Playgroud)

mou*_*uad 6

你不能混合%j使用其他格式代码,%m因为如果你在表格中查看你链接%j是一年中的一天作为十进制数字[001,366]所以10对应于一年中的10天所以它是01的一月 ...

所以你只需写:

>>> datetime.strptime('10 2011', '%j %Y')
datetime.datetime(2011, 1, 10, 0, 0)
Run Code Online (Sandbox Code Playgroud)

否则,如果您想使用10作为装载日,您应该这样做:

>>> datetime.strptime('10 3 2011', '%d %m %Y')
datetime.datetime(2011, 3, 10, 0, 0)
Run Code Online (Sandbox Code Playgroud)