在今天的日期和上一个日期之间获取天数差异

时间:2016-06-10 11:29:29

标签: python datetime

我正在使用" 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,我不介意任何一种方式)。我知道我可以使用正则表达式来提取它的那一部分,但是有更好的更可靠的方法吗?

感谢您的帮助!如果您希望我提供完整的代码,我可以提供它,我们认为没有必要。

4 个答案:

答案 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)

声明

datetime.datetime.now() - date

产生timedelta个对象。它具有daysseconds等属性。

答案 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