题
这个问题已经有一个答案在这里:
- 蟒蛇strftime新的不会导致0? 17的答案
有一个灵活的方式摆脱导致零日期串蟒蛇?
在例如下面我想要得到12/1/2009在返回而不是12/01/2009.我想我可以使用普通的表达方式。但对我来说,似乎喜欢矫枉过正。是有一个更好的解决办法?
>>> time.strftime('%m/%d/%Y',time.strptime('12/1/2009', '%m/%d/%Y'))
'12/01/2009'
也参看
解决方案
@运,它并不需要多做一点串的操纵。
>>> t=time.strftime('%m/%d/%Y',time.strptime('12/1/2009', '%m/%d/%Y'))
>>> '/'.join( map( str, map(int,t.split("/")) ) )
'12/1/2009'
其他提示
一个简单易读的方案是格式,它自己:
>>> d = datetime.datetime.now()
>>> "%d/%d/%d"%(d.month, d.day, d.year)
4/8/2012
我建议一个非常简单的规则的表达。它不喜欢这是性的关键,是吗?
搜索 \b0
和替换什么也没有。
I.e:
import re
newstring = re.sub(r"\b0","",time.strftime('%m/%d/%Y',time.strptime('12/1/2009', '%m/%d/%Y')))
>>> time.strftime('%-m/%-d/%Y',time.strptime('8/1/2009', '%m/%d/%Y'))
'8/1/2009'
但是,我怀疑这是取决于系统 strftime()
实施并不能完全移植到的所有平台,如果该事项给你。
不隶属于 StackOverflow