Python 日期比较

64 投票
7 回答
67071 浏览
提问于 2025-04-11 09:21

我想知道一个特定的 Python 日期时间对象是否比 X 小时或分钟要早。我想做的事情类似于:

if (datetime.now() - self.timestamp) > 100
# Where 100 is either seconds or minutes

这样做会产生一个类型错误。

在 Python 中,正确的日期时间比较方法是什么?我已经查看过 WorkingWithTime,虽然差不多,但还不是我想要的。我想要的只是把日期时间对象转换成秒,这样我就可以进行正常的整数比较。

请分享一些日期时间处理的最佳实践。

7 个回答

5

替代方案:

if (datetime.now() - self.timestamp).total_seconds() > 100:

假设 self.timestamp 是一个日期时间的实例

5

比较你自己创建的一个时间差(timedelta)和其他的时间差之间的区别:

if datetime.datetime.now() - timestamp > datetime.timedelta(seconds = 5):
    print 'older'
111

使用 datetime.timedelta 类:

>>> from datetime import datetime, timedelta
>>> then = datetime.now() - timedelta(hours = 2)
>>> now = datetime.now()
>>> (now - then) > timedelta(days = 1)
False
>>> (now - then) > timedelta(hours = 1)
True

你的例子可以写成:

if (datetime.now() - self.timestamp) > timedelta(seconds = 100)

或者

if (datetime.now() - self.timestamp) > timedelta(minutes = 100)

撰写回答