Python日期字符串格式

kel*_*rek 4 python string datetime

我想从字符串格式的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'') 
Run Code Online (Sandbox Code Playgroud)

第二个替换不起作用 - 我得到01/1/2013.如果它位于字符串开头的旁边,我该如何匹配零?

Mar*_*ers 12

.replace()没有采取正则表达式.您正在尝试替换文字文本^0.

str.format()不补零,而不是创建的日期格式:

'{0.month}/{0.day}/{0.year}'.format(my_date)
Run Code Online (Sandbox Code Playgroud)

并避免必须更换零.

演示:

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

如果使用glibc库编译Python ,那么您也可以使用格式中的短划线来抑制填充:

my_date.strftime('%-m/%-d/%y')
Run Code Online (Sandbox Code Playgroud)

但这不是那么便携.