$ 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。

08-20 01:40