首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Python说明符似乎不起作用

Python说明符似乎不起作用
EN

Stack Overflow用户
提问于 2011-03-09 14:55:45
回答 3查看 1.8K关注 0票数 3

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

代码语言:javascript
代码运行次数:0
运行
复制
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都没有用。

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

代码语言:javascript
代码运行次数:0
运行
复制
$ 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).
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-09 15:00:39

您不能将%j与其他格式代码(如%m )混在一起,因为如果您查看链接的表中的%j是一年中的一天作为十进制数001,366,所以10对应于一年中的10天,所以是1月的01…

所以你只需要写:

代码语言:javascript
代码运行次数:0
运行
复制
>>> datetime.strptime('10 2011', '%j %Y')
datetime.datetime(2011, 1, 10, 0, 0)

否则,如果您想使用10作为挂载的一天,您应该这样做:

代码语言:javascript
代码运行次数:0
运行
复制
>>> datetime.strptime('10 3 2011', '%d %m %Y')
datetime.datetime(2011, 3, 10, 0, 0)
票数 6
EN

Stack Overflow用户

发布于 2011-03-09 15:00:04

%j不是“一年中的一天”解析器吗?它可能迫使strptime选择1月21日,凌驾于%m规则之上?

票数 3
EN

Stack Overflow用户

发布于 2011-03-09 15:03:48

%j指定一年中的某一天。一年中的第十天,即1月10日,不可能发生在3月,所以您的月份规范被忽略了。垃圾进来,垃圾外泄。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5247582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档