我正在使用" datetime"模块和我试图计算天中两个日期之间的差异。这是我正在使用的代码,其前面有一些其他代码可以获取对象sub.created_utc
(POSIX时间戳或unix时间戳):
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
,我不介意任何一种方式)。我知道我可以使用正则表达式来提取它的那一部分,但是有更好的更可靠的方法吗?
感谢您的帮助!如果您希望我提供完整的代码,我可以提供它,我们认为没有必要。
答案 0 :(得分:4)
扣除日期后,您会得到一个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
是内置库的名称;所以最好不要在你的代码中使用它。
答案 1 :(得分:0)
答案 2 :(得分:0)
<强> 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是您必须减去的天数。
答案 3 :(得分:0)
您无需将其转换为datetime
,您可以使用time.time()
获取当前的Unix时间。它允许在给定Unix时间的过去几天内找到时间差:
import time
DAY = 86400 # POSIX day - the exact value
days_ago = (time.time() - sub.created_utc) // DAY