2012-11-20 154 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。 –