Python日期比较

2024-04-24 13:04:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道一个特定的python datetime对象是否早于X小时或分钟。我正试图做类似的事情:

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

这将生成类型错误。

在python中进行日期时间比较的正确方法是什么?我已经看了WorkingWithTime这很接近,但不是我想要的。我假设我只需要用秒表示datetime对象,这样就可以进行正常的int比较。

请张贴日期时间最佳实践列表。


Tags: or对象selfdatetimeifis时间where
3条回答

备选方案:

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

假设self.timestamp是datetime实例

使用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)

将差异与您创建的时间增量进行比较:

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

相关问题 更多 >