2011-10-06 110 views
1
$ cat .t.py 
import re 
from datetime import datetime as dtt 

oldestDate = dateComp = dtt.strptime('1.1.1001', '%d.%m.%Y') 
dateComp = dtt.strptime('11.1.2011', '%d.%m.%Y') 
ind = re.sub(" days,.*", "", str((dateComp - oldestDate))) 

print ind 
print dateComp - oldestDate 
$ python .t.py 
368905 
368905 days, 0:00:00 

我怎樣才能得到沒有正則表達式代碼氣味的日子?問題升級,因爲我需要在很多地方使用索引。那麼一些更乾淨的方法來做到這一點日期時間差只返回天數?

回答

2

這麼快就不要使用str()。您從另一個datetime減去一個timedelta對象後得到的結果是.days屬性,您可以閱讀它。

(dateComp - oldestDate).days 

注意閱讀只有.days屬性將意味着它將四捨五入的區別 - 如果你不是要舍的天最接近的數字,你需要添加一些邏輯檢查.seconds屬性以查看它是否接近0或86400.

相關問題