Python 日期比较
我想知道一个特定的 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)