如何去掉Python日期字符串前导零?

16 投票
4 回答
11349 浏览
提问于 2025-04-15 19:33

有没有简单的方法可以去掉Python中日期字符串前面的零呢?

在下面的例子中,我想要的结果是12/1/2009,而不是12/01/2009。我想我可以用正则表达式来处理,但我觉得这有点复杂。有没有更好的办法呢?

>>> time.strftime('%m/%d/%Y',time.strptime('12/1/2009', '%m/%d/%Y'))
'12/01/2009'

另见

Python strftime - 去掉前导零的日期?

4 个回答

3

我建议使用一个非常简单的正则表达式。这个操作并不是特别需要高性能,对吧?

你可以搜索 \b0,然后把它替换成空白,也就是删除它。

也就是说:

import re
newstring = re.sub(r"\b0","",time.strftime('%m/%d/%Y',time.strptime('12/1/2009', '%m/%d/%Y')))
22

一个更简单、更易读的解决方案是自己来格式化:

>>> d = datetime.datetime.now()
>>> "%d/%d/%d"%(d.month, d.day, d.year)
4/8/2012
8

@OP,处理字符串其实并不复杂。

>>> t=time.strftime('%m/%d/%Y',time.strptime('12/1/2009', '%m/%d/%Y'))
>>> '/'.join( map( str, map(int,t.split("/")) ) )
'12/1/2009'

撰写回答