Sol*_*ull 236 python padding strftime
使用Python时strftime,有没有办法删除日期的前0,如果它在10日之前,即.那01是1吗?找不到%那个东西?
谢谢!
小智 511
实际上我有同样的问题,我意识到,如果你%在字母和字母之间添加一个连字符,你可以删除前导零.
例如%Y/%-m/%-d.
这仅适用于Unix(Linux,OS X),而不适用于Windows(包括Cygwin).在Windows上,您可以使用#,例如%Y/%#m/%#d.
mgi*_*son 184
format自python2.6以来,我们可以通过方法的出现来做这种事情:
>>> import datetime
>>> '{dt.year}/{dt.month}/{dt.day}'.format(dt = datetime.datetime.now())
'2013/4/19'
Run Code Online (Sandbox Code Playgroud)
虽然可能超出原始问题的范围,但对于更有趣的格式,您可以执行以下操作:
>>> '{dt:%A} {dt:%B} {dt.day}, {dt.year}'.format(dt=datetime.datetime.now())
'Wednesday December 3, 2014'
Run Code Online (Sandbox Code Playgroud)
从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'
Run Code Online (Sandbox Code Playgroud)
Ale*_*lli 37
%根据http://docs.python.org/library/time.html,某些平台可能支持字母之间的宽度和精度规格(例如"d"代表日期)- 但它绝对是非便携式的解决方案(例如在我的Mac上不起作用;-).也许你可以使用字符串替换(或RE,对于真正令人讨厌的格式)strftime来解决这个问题?例如:
>>> 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'
Run Code Online (Sandbox Code Playgroud)
gdw*_*dw2 26
>>> import datetime
>>> d = datetime.datetime.now()
>>> d.strftime('X%d/X%m/%Y').replace('X0','X').replace('X','')
'5/5/2011'
Run Code Online (Sandbox Code Playgroud)
Cha*_*edy 17
在Windows上,添加"#",如'%#m /%#d /%Y%#I:%M:%S%p'
供参考:https://msdn.microsoft.com/en-us/library/fe06s4ak.aspx
bon*_*ges 15
聚会很晚,但%-d我的工作结束了.
datetime.now().strftime('%B %-d, %Y')产生类似"2014年11月5日"的东西
欢呼:)
mcq*_*rty 10
我发现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')
Run Code Online (Sandbox Code Playgroud)
小智 7
看一下-波纹管:
>>> 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)
Run Code Online (Sandbox Code Playgroud)
只需replace像这样使用:
(datetime.date.now()).strftime("%Y/%m/%d").replace("/0", "/")
它会输出:
'2017/7/21'
Run Code Online (Sandbox Code Playgroud)
小智 5
因为%d您可以使用int()它转换为整数,然后它会自动删除前导 0 并变为整数。然后,您可以使用str().
| 归档时间: |
|
| 查看次数: |
102841 次 |
| 最近记录: |