$ 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
如果没有正则表达式代码气味,我如何才能得到几天?由于我需要在许多位置使用索引,因此问题升级了。因此,一些更清洁的方法可以做到这一点?
最佳答案
不要马上使用str()
。从另一个减去一个datetime
后得到的结果是一个timedelta
对象,该对象具有可以读取的.days
属性。
(dateComp - oldestDate).days
请注意,仅读取
.days
属性将意味着它将舍入差异-如果您想舍入到最接近的天数,则需要添加一些逻辑以检查.seconds
属性以查看是否接近0或86400。