当使用Python strftime时,是否有一种方法可以删除日期的第一个0,如果它在10号之前,即。01 = 1?找不到一个%的东西吗?
谢谢!
当使用Python strftime时,是否有一种方法可以删除日期的第一个0,如果它在10号之前,即。01 = 1?找不到一个%的东西吗?
谢谢!
当前回答
虽然有点晚了,但是%-d对我来说是有效的。
datetime.now()。strftime('%B %-d, %Y')生成类似"November 5, 2014"的内容
欢呼:)
其他回答
自从python2.6以来,我们可以使用format方法来做这类事情:
>>> import datetime
>>> '{dt.year}/{dt.month}/{dt.day}'.format(dt = datetime.datetime.now())
'2013/4/19'
虽然可能超出了最初问题的范围,但对于更有趣的格式,你可以这样做:
>>> '{dt:%A} {dt:%B} {dt.day}, {dt.year}'.format(dt=datetime.datetime.now())
'Wednesday December 3, 2014'
从python3.6开始,它可以表示为内联格式化字符串:
Python 3.6.0a2 (v3.6.0a2:378893423552, Jun 13 2016, 14:44:21)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import datetime
>>> dt = datetime.datetime.now()
>>> f'{dt:%A} {dt:%B} {dt.day}, {dt.year}'
'Monday August 29, 2016'
对于%d,您可以使用int()将其转换为整数,然后它将自动删除前导0并变成整数。然后可以使用str()将其转换回字符串。
有点棘手,但对我来说很管用
例:从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)
在Windows上,添加一个“#”,如“% % # # m / d / Y % % #我:% m: % S % p '
参考:https://msdn.microsoft.com/en-us/library/fe06s4ak.aspx
对于大多数情况,标准库已经足够好了,但对于真正详细的日期操作,您应该始终寻找一些专门的第三方库。
使用箭头:
>>> import arrow
>>> arrow.utcnow().format('dddd, D. M. YYYY')
'Friday, 6. 5. 2022'
查看受支持的令牌的完整列表。