2012-11-20 245 views
8

我有代码读取'YYYY-MM-DD'格式的大量日期。解析所有这些日期,以便它可以添加一天,两天或三天,然后以相同的格式回写会显着降低速度。速度更快吗?

3214657 14.330 0.000 103.698 0.000 trade.py:56(effective) 
3218418 34.757 0.000 66.155 0.000 _strptime.py:295(_strptime) 

day = datetime.datetime.strptime(endofdaydate, "%Y-%m-%d").date() 

任何建议如何加快一点(或很多)?

回答

25

因素7是否足够吗?

datetime.datetime.strptime(a, '%Y-%m-%d').date()  # 8.87us 

datetime.date(*map(int, a.split('-')))     # 1.28us 

编辑:伟大的想法有明确的切片:

datetime.date(int(a[:4]), int(a[5:7]), int(a[8:10])) # 1.06us 

,使因数为8

+3

mwhhhah。我想我会让你感动。 –

+3

在上下文中:strptime = 128s,this = 61s,并且对于55s是显式的:'datetime.date(int(a [:4]),int(a [5:7]),int(a [8:10] ))'。现在替换strftime并可能修剪另一个10秒... thx。 –