当使用Python strftime时,是否有一种方法可以删除日期的第一个0,如果它在10号之前,即。01 = 1?找不到一个%的东西吗?

谢谢!


当前回答

有点棘手,但对我来说很管用

例:从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)

其他回答

老问题,但是%l(小写l)在strftime中对我有用:不过,这可能不适用于每个人,因为我找到的Python文档中没有列出它

简单地像这样使用replace:

(datetime.date.now ()) .strftime(“% Y / % m / % d”)。替换(" / 0”、“/”)

它将输出:

'2017/7/21'

我迟到了,但是一个简单的列表切片就可以完成工作

today_date = date.today().strftime('%d %b %Y')
if today_date[0] == '0':
    today_date = today_date[1:]

虽然有点晚了,但是%-d对我来说是有效的。

datetime.now()。strftime('%B %-d, %Y')生成类似"November 5, 2014"的内容

欢呼:)

对于大多数情况,标准库已经足够好了,但对于真正详细的日期操作,您应该始终寻找一些专门的第三方库。

使用箭头:

>>> import arrow
>>> arrow.utcnow().format('dddd, D. M. YYYY')
'Friday, 6. 5. 2022'

查看受支持的令牌的完整列表。