我想从字符串格式的 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 日。仅当它位于字符串开头的旁边时,如何匹配零?
.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')
但这几乎没有那么便携。