Skip to content
Advertisement

Python Date Comparisons

I would like to find out if a particular python datetime object is older than X hours or minutes. I am trying to do something similar to:

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

This generates a type error.

What is the proper way to do date time comparison in python? I already looked at WorkingWithTime which is close but not exactly what I want. I assume I just want the datetime object represented in seconds so that I can do a normal int comparison.

Please post lists of datetime best practices.

Advertisement

Answer

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)
User contributions licensed under: CC BY-SA
3 People found this is helpful
Advertisement