当使用Python strftime时,是否有一种方法可以删除日期的第一个0,如果它在10号之前,即。01 = 1?找不到一个%的东西吗?
谢谢!
当使用Python strftime时,是否有一种方法可以删除日期的第一个0,如果它在10号之前,即。01 = 1?找不到一个%的东西吗?
谢谢!
当前回答
例如,使用“%-d”即使在相同操作系统的不同版本之间也不能移植。 更好的解决方案是分别提取日期组件,并在特定于日期的格式化操作符和每个组件的日期属性访问之间进行选择。
e = datetime.date(2014, 1, 6)
"{date:%A} {date.day} {date:%B}{date.year}".format(date=e)
其他回答
基于Alex的方法,这将适用于字符串开头和空格后的情况:
re.sub('^0|(?<= )0', '', "01 January 2000 08:00am")
与.format或%-d相比,我更喜欢这个,因为它是跨平台的,并且允许我继续使用strftime(以获得“November”和“Monday”之类的东西)。
老问题,但是%l(小写l)在strftime中对我有用:不过,这可能不适用于每个人,因为我找到的Python文档中没有列出它
有点棘手,但对我来说很管用
例:从2021-02-01T00:00:00.000Z到2021-02-1
from datetime import datetime
dateObj = datetime.strptime('2021-02-01T00:00:00.000Z','%Y-%m-%dT%H:%M:%S.%fZ')
dateObj.strftime('%Y-%m-{}').format(dateObj.day)
简单地像这样使用replace:
(datetime.date.now ()) .strftime(“% Y / % m / % d”)。替换(" / 0”、“/”)
它将输出:
'2017/7/21'
我发现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')