Python Date Comparisons

Solution 1:

Use the datetime.timedelta class:

>>> 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

Your example could be written as:

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

or

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

Solution 2:

Compare the difference to a timedelta that you create:

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

Solution 3:

Alternative:

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

Assuming self.timestamp is an datetime instance