Man*_*edi 2 python datetime python-2.7 python-datetime
我正在尝试将以"DD MM YYYY"格式给出的字符串转换为日期时间对象.如果日期中的日期是单个数字,我希望输出中的日整数由一个数字组成.例如,在转换为日期时间对象而不是"2014年5月1日"后,输入"2014年5月1日"应转换为"2014年5月1日".
为此,我使用%e格式转换输出日期的日期.这是相同的代码:
import datetime
from datetime import timedelta
s = "1 July 2013"
d = datetime.datetime.strptime(s, "%e %B %Y")
print d.strftime("%e %B %Y")
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误:
ValueError: 'e' is a bad directive in format '%e %B %Y'
Run Code Online (Sandbox Code Playgroud)
格式有什么问题?我正在使用Python 2.7,如果这有帮助的话.
您可以使用以下方式将字符串格式和属性访问混合strftime
使用str.format
,例如:
from datetime import datetime
s = "1 July 2013"
d = datetime.strptime(s, "%d %B %Y")
# 2013-07-01 00:00:00
out = '{0.day} {0:%B %Y}'.format(d)
# 1 July 2013
Run Code Online (Sandbox Code Playgroud)
%e
不是Python保证可以处理的格式代码datetime.strftime
.请参阅此处的表格,以获取Python保证支持的格式代码列表.但是,由于CPython strftime
在某些操作系统(如Linux)上调用底层C库的strftime,因此%e
存在格式代码.
在CPython的源代码表示,
您的平台上可能还有其他代码.请参阅\n\C库strftime函数的文档.\n"
没有其他格式代码(保证存在),其行为类似%e
.因此,如果您的系统没有,%e
或者您希望您的代码与跨平台兼容,请使用字符串格式,如Zacrath或Jon Clements所示.
归档时间: |
|
查看次数: |
5332 次 |
最近记录: |