Python日期比较

Rya*_*ite 62 python datetime

我想知道特定的python日期时间对象是否早于X小时或分钟.我正在尝试做类似的事情:

if (datetime.now() - self.timestamp) > 100
# Where 100 is either seconds or minutes
Run Code Online (Sandbox Code Playgroud)

这会生成类型错误.

在python中进行日期时间比较的正确方法是什么?我已经看过WorkingWithTime,它很接近但不完全是我想要的.我假设我只想要以秒为单位表示的datetime对象,以便我可以进行正常的int比较.

请发布日期时间最佳做法列表.

Joh*_*kin 110

使用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
Run Code Online (Sandbox Code Playgroud)

你的例子可以写成:

if (datetime.now() - self.timestamp) > timedelta(seconds = 100)
Run Code Online (Sandbox Code Playgroud)

要么

if (datetime.now() - self.timestamp) > timedelta(minutes = 100)
Run Code Online (Sandbox Code Playgroud)


Wil*_*iam 5

将差异与您创建的timedelta进行比较:

if datetime.datetime.now() - timestamp > datetime.timedelta(seconds = 5):
    print 'older'
Run Code Online (Sandbox Code Playgroud)


小智 5

替代方案:

if (datetime.now() - self.timestamp).total_seconds() > 100:
Run Code Online (Sandbox Code Playgroud)

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