首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python -获得两次之间的差异

问python -获得两次之间的差异
EN

Stack Overflow用户
提问于 2021-05-15 00:47:43
回答 3查看 636关注 0票数 1

我今天有个简单的问题。我想得到两个日期之间的差异,并检查差异是否在5分钟左右。

我发现了一个问题,就是找出区别,去检查一下。

我把同一天和一个有几分钟差异的日期做了比较,结果显示-1天的差别?对我毫无意思。

如果你想的话,你自己试试吧。

比较日期:

代码语言:javascript
复制
Date1: 2021-05-15 00:38:57.244000
Date2: 2021-05-15 02:40:42.245693

印刷上的区别是:

代码语言:javascript
复制
Diff: -1 day, 21:58:14.998307

为什么是-1天?差别不应该只是两个小时吗?那么,获得两个日期之间的差异的最好方法是什么呢?正如我所说的,,我想检查两者之间的差异是否更小(或等于)5分钟。,如果每次不同的日期,这是怎么可能的?

重要信息:的日期总是不同的,因为我检查帐户创建日期。

我使用了这段代码来实现不同的效果:

代码语言:javascript
复制
diff = date1 - date2
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-05-15 01:54:31

这个问题可以通过排序两个日期对象来解决,这样差异比较总是返回一个正数。然后,您可以使用timedelta对象来检查差异是否小于5分钟。

代码语言:javascript
复制
from datetime import datetime, timedelta

# Define dates as datetime objects
Date1 = datetime.fromisoformat("2021-05-15 00:38:57.244000")
Date2 = datetime.fromisoformat("2021-05-15 02:40:42.245693")

# Define 5 minutes as a timedelta object
five_minute_duration = timedelta(minutes=5)

通过从较新日期减去旧日期来比较这两个日期。结果将是一个timedelta对象。

代码语言:javascript
复制
diff = Date2 - Date1

如果您不确定哪个日期对象是老的和年轻的,您可以对它们进行排序。这将使比较稳定,并防止意外的负值时间增量。

代码语言:javascript
复制
dates_sorted = sorted([Date2, Date1])
diff = dates_sorted[1] - dates_sorted[0]

以小时为单位。在这个例子中,持续时间是2.029.几个小时。

代码语言:javascript
复制
diff.total_seconds() / (60 * 60)

检查差异是否较小或等于5分钟的持续时间。

代码语言:javascript
复制
if diff <= five_minute_duration:
    print("Yes")
else:
    print("No")
票数 2
EN

Stack Overflow用户

发布于 2021-05-15 01:51:08

您可以在减除操作之前进行比较。示例如下所示。

代码语言:javascript
复制
from datetime import datetime

dt1 = datetime(2020, 4, 19, 12, 20)
dt2 = datetime(2020, 4, 21, 15, 2)

def get_date_diff(date1, date2):
    diff = date2 - date1 if date1 < date2 else date1 - date2
    return diff

def test():
    print (get_date_diff(dt1, dt2))

test()
票数 1
EN

Stack Overflow用户

发布于 2021-05-15 02:02:56

创建一个上限和下限,方法是为允许的差值创建两个具有正值和负值的时间差

代码语言:javascript
复制
lower = timedelta(minutes=-5)
upper = timedelta(minutes=5)

然后检查日期时间之间的差异是否在这些范围内。

代码语言:javascript
复制
lower < date1 - date2 < upper

这种方法的优点是,如果进行多次比较,只需创建一次lower和upper,就不必对日期时间进行排序。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67542368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档