有没有灵巧的方法来摆脱Python中日期字符串的前导零?
在下面的例子中,我想得到12/1/2009而不是12/01/2009。我想我可以使用正则表达式。但对我来说,这似乎有点矫枉过正。有更好的解决方案吗?
>>> time.strftime('%m/%d/%Y',time.strptime('12/1/2009', '%m/%d/%Y'))
'12/01/2009'
答案 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()
实现,如果对您来说很重要,可能无法完全移植到所有平台。