减去不同格式的日期并转换为Int - python

我之前也问过类似的问题,并得到了很多反馈。我结合了几个答案来得出解决方案,但是效率似乎很低。我正在寻找一种更好的方式来获取变量(ts)与今天之间的整数形式的天数。

我的代码:

import datetime
ts = '2015-03-01T17:09:00.000+0000'
ts = ts[:10]
f = '%Y-%m-%d'
date_from_sql = datetime.datetime.strptime(ts, f)
now = datetime.datetime.now()
now = str(now)
now = now[:10]
now = datetime.datetime.strptime(str(now), f)
delta = date_from_sql - now
print delta.total_seconds()/(3600*24)

输出:

67.0

python大神给出的解决方案

不需要delta.total_seconds()/(3600*24),只需使用.days

from datetime import datetime
now = datetime.now()
ts = '2015-03-01T17:09:00.000+0000'
ts = ts[:10]
f = '%Y-%m-%d'
date_from_sql = datetime.strptime(ts, f)
print(date_from_sql - now).days

如果您不想考虑时间,请使用日期:

now = datetime.now().date()
ts = '2015-03-01T17:09:00.000+0000'
ts = ts[:10]
f = '%Y-%m-%d'
date_from_sql = datetime.strptime(ts, f).date()
print(date_from_sql - now).days

如果有机会,日期字符串可能采用不同的格式,则可能需要dateutil:

from dateutil import parser

now = datetime.now().date()
ts = '2015-03-01T17:09:00.000+0000'
ts = parser.parse(ts).date()
print(ts - now).days