在Python中摆脱日期字符串的前导零?

时间:2010-02-22 09:10:29

标签: python date leading-zero

有没有灵巧的方法来摆脱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 - date without leading 0?

4 个答案:

答案 0 :(得分:21)

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

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

答案 1 :(得分: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'

答案 2 :(得分:3)

我建议一个非常简单的正则表达式。这不是性能关键,是吗?

搜索\b0并替换为空。

予。 E:

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

答案 3 :(得分:2)

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

但是,我怀疑这取决于系统的strftime()实现,如果对您来说很重要,可能无法完全移植到所有平台。