当使用Python strftime时,是否有一种方法可以删除日期的第一个0,如果它在10号之前,即。01 = 1?找不到一个%的东西吗?
谢谢!
当使用Python strftime时,是否有一种方法可以删除日期的第一个0,如果它在10号之前,即。01 = 1?找不到一个%的东西吗?
谢谢!
当前回答
看一看-下面:
>>> 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)
其他回答
我发现Django模板日期格式过滤器是快速和简单的。它去掉了前导零。如果你不介意导入Django模块,可以查看一下。
http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
from django.template.defaultfilters import date as django_date_filter
print django_date_filter(mydate, 'P, D M j, Y')
基于Alex的方法,这将适用于字符串开头和空格后的情况:
re.sub('^0|(?<= )0', '', "01 January 2000 08:00am")
与.format或%-d相比,我更喜欢这个,因为它是跨平台的,并且允许我继续使用strftime(以获得“November”和“Monday”之类的东西)。
虽然有点晚了,但是%-d对我来说是有效的。
datetime.now()。strftime('%B %-d, %Y')生成类似"November 5, 2014"的内容
欢呼:)
对于大多数情况,标准库已经足够好了,但对于真正详细的日期操作,您应该始终寻找一些专门的第三方库。
使用箭头:
>>> import arrow
>>> arrow.utcnow().format('dddd, D. M. YYYY')
'Friday, 6. 5. 2022'
查看受支持的令牌的完整列表。
我迟到了,但是一个简单的列表切片就可以完成工作
today_date = date.today().strftime('%d %b %Y')
if today_date[0] == '0':
today_date = today_date[1:]