2011-10-06 79 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.

相关问题