获取今天的日期和上一天之间的天数差异
我使用的是“datetime”模块,我试图计算出天中两个日期之间的差异。下面是我使用的代码,与其他一些代码来的是获取对象sub.created_utc
(一POSIX时间戳,或UNIX timestap)收到:获取今天的日期和上一天之间的天数差异
import datetime
date = datetime.datetime.utcfromtimestamp(sub.created_utc);
print(sub.created_utc);
print(date);
print(datetime.datetime.now() - date);
这里是输出:
1440736746.0
2015-08-28 04:39:06
287 days, 16:47:41.560711
我的问题是,我如何得到287 days
的一部分(或只是287
,我不介意)。我知道我可以使用正则表达式来提取它的那部分,但是有没有更好的可靠方法呢?
感谢您的帮助!如果你想让我提供完整的代码,我可以提供它,但不会认为这是必要的。
一旦你减去的日期,你会得到一个datetime.timedelta
对象,你可以直接访问它的属性:
import datetime
d1 = datetime.datetime.utcfromtimestamp(sub.created_utc)
print(sub.created_utc)
print(d1)
result = datetime.datetime.utcnow() - d1
print(result.days)
Python语句不;
结束; date
是内置库的名称;所以最好不要在你的代码中使用它。
谢谢,这工作。分号也是一种习惯,用于JS和PHP开发。似乎没有提出错误或缓慢的程序,所以它有多糟糕? –
请参阅[Python风格指南](https://www.python.org/dev/peps/pep-0008/)。 –
@MatthewMob:无关:你应该在这里使用'utcnow()',而不是'now()'。 – jfs
ANSWER
在Python datetime模块已经得到了一个名为timedelta功能。 MATHS和GREEK中的Delta意味着差异。例如:
a = 1
b = 2
delta = b-a
所以回答你的问题,你必须写:
from datetime import date, timedelta
d = date.today() - timedelta(days=delta_days)
其中delta_days,你必须要减去天。
你不需要将它转换成datetime
,你可以使用time.time()
得到当前的Unix时间。它可以找到一个给定的Unix时间从过去以天为时间差:
import time
DAY = 86400 # POSIX day - the exact value
days_ago = (time.time() - sub.created_utc) // DAY
http://stackoverflow.com/questions/441147/how-can-i-subtract-a-day-from-a -python-date?rq = 1 –