5

我想从字符串格式的 python 日期中删除填充的零:

formatted_date = my_date.strftime("%m/%d/%Y") # outputs something like: 01/01/2013
date_out = formatted_date.replace(r'/0', r'/').replace(r'^0', r'') 

第二次替换不起作用——我得到了 2013 年 1 月 1 日。仅当它位于字符串开头的旁边时,如何匹配零?

4

1 回答 1

13

.replace()采用正则表达式。您正在尝试替换文字 text ^0

用于str.format()创建没有零填充的日期格式:

'{0.month}/{0.day}/{0.year}'.format(my_date)

并避免必须替换零。

演示:

>>> import datetime
>>> today = datetime.date.today()
>>> '{0.month}/{0.day}/{0.year}'.format(today)
'9/10/2013'

如果 Python 是使用库编译的glibc,那么您还可以在格式中使用破折号来抑制填充:

my_date.strftime('%-m/%-d/%y')

但这几乎没有那么便携。

于 2013-09-10T16:47:20.517 回答