$ 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()
。从一个日期时间减去另一个日期时间得到的结果是 timedelta
对象,它有一个您可以读取的 .days
属性。
(dateComp - oldestDate).days
请注意,仅读取 .days
属性意味着它将向下舍入差异 - 如果您想四舍五入到最接近的天数,则可以您需要添加一些逻辑来检查 .seconds
属性,看看它是否更接近 0 还是 86400。
关于python - 仅返回天数的日期时间差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7669420/