当使用Python strftime时,是否有一种方法可以删除日期的第一个0,如果它在10号之前,即。01 = 1?找不到一个%的东西吗?
谢谢!
当使用Python strftime时,是否有一种方法可以删除日期的第一个0,如果它在10号之前,即。01 = 1?找不到一个%的东西吗?
谢谢!
当前回答
>>> import datetime
>>> d = datetime.datetime.now()
>>> d.strftime('X%d/X%m/%Y').replace('X0','X').replace('X','')
'5/5/2011'
其他回答
看一看-下面:
>>> from datetime import datetime
>>> datetime.now().strftime('%d-%b-%Y')
>>> '08-Oct-2011'
>>> datetime.now().strftime('%-d-%b-%Y')
>>> '8-Oct-2011'
>>> today = datetime.date.today()
>>> today.strftime('%d-%b-%Y')
>>> print(today)
虽然有点晚了,但是%-d对我来说是有效的。
datetime.now()。strftime('%B %-d, %Y')生成类似"November 5, 2014"的内容
欢呼:)
根据http://docs.python.org/library/time.html的说法,一些平台可能支持在%和字母之间的宽度和精度规格(例如“d”表示月份的日期),但这绝对是一个不可移植的解决方案(例如,在我的Mac上不能工作;-)。也许你可以在strftime之后使用字符串替换(或RE,对于非常讨厌的格式)来补救这个问题?例如:
>>> y
(2009, 5, 7, 17, 17, 17, 3, 127, 1)
>>> time.strftime('%Y %m %d', y)
'2009 05 07'
>>> time.strftime('%Y %m %d', y).replace(' 0', ' ')
'2009 5 7'
我迟到了,但是一个简单的列表切片就可以完成工作
today_date = date.today().strftime('%d %b %Y')
if today_date[0] == '0':
today_date = today_date[1:]
老问题,但是%l(小写l)在strftime中对我有用:不过,这可能不适用于每个人,因为我找到的Python文档中没有列出它