Python Compare DateTime
Python Compare DateTime
When you have two datetime objects, the date and time one of them represent could be earlier or latest than that of other, or equal.
To compare datetime objects, you can use comparison operators like greater than, less than or equal to. Like any other comparison operation, a boolean value is returned.
In this tutorial, we will learn how to compare date and time in datetime objects.
1. Check if a DateTime is greater than other DateTime
You can use greater than operator >
to check if one datetime object is greater than other.
First let us understand what we mean when one date and time is greater than other. For example, if you take current date and time, and some some past date and time for comparison; current date and time is greater than that of past date. Similarly, future date and time is greater than the current date and time. The same explanation holds for any two dates.
Chronologically, which ever happened first is lesser.
In the following program, we initialize two datetime objects, and then compare if first one is greater than second.
Python Program
import datetime
# date and time in yyyy/mm/dd hh:mm:ss format
d1 = datetime.datetime(2020, 5, 13, 22, 50, 55)
d2 = datetime.datetime(2020, 7, 13, 22, 50, 55)
d3 = datetime.datetime(2020, 6, 13, 22, 50, 55)
print(d1 > d2)
print(d2 > d3)
Output
False
True
We initialized three datetime objects. All the values for year, day hour, minute and second is same, but changed in the value of month. d1
is having month equal to 5, d2
is having month equal to 7 and d3
is having month equal to 6.
2. Check if a DateTime is less than other DateTime
You can use less than comparison operator <
to check if one datetime object is less than other.
In the following program, we initialize two datetime objects, and then compare if first one is less than second.
Python Program
import datetime
# date and time in yyyy/mm/dd hh:mm:ss format
d1 = datetime.datetime(2020, 5, 13, 22, 50, 55)
d2 = datetime.datetime(2020, 7, 13, 22, 50, 55)
d3 = datetime.datetime(2020, 6, 13, 22, 50, 55)
print(d1 < d2)
print(d2 < d3)
Output
True
False
3. Check if two DateTime objects are equal
You can use equal to comparison operator =
to check if one datetime object is has same value as other.
In the following program, we initialize two datetime objects, and then check if both datetime objects have same date and time.
Python Program
import datetime
# date and time in yyyy/mm/dd hh:mm:ss format
d1 = datetime.datetime(2020, 5, 13, 22, 50, 55)
d2 = datetime.datetime(2020, 5, 13, 22, 50, 55)
d3 = datetime.datetime(2020, 6, 13, 22, 50, 55)
print(d1 == d2)
print(d2 == d3)
Output
True
False
4. Compare only dates of DateTime objects
In the following program, we initialize three datetime objects, and compare only the dates and ignore the time part.
Python Program
import datetime
# date and time in yyyy/mm/dd hh:mm:ss format
d1 = datetime.datetime(2020, 5, 13, 22, 50, 55)
d2 = datetime.datetime(2020, 5, 13, 7, 50, 55)
d3 = datetime.datetime(2020, 6, 13, 22, 50, 55)
print(d1.date() == d2.date()) #True
print(d1.date() == d3.date()) #False
print(d1.date() < d2.date()) #False
print(d1.date() < d3.date()) #True
print(d1.date() > d2.date()) #False
print(d1.date() > d3.date()) #False
Output
True
False
False
True
False
False
5. Compare only times of DateTime objects
In the following program, we initialize three datetime objects, and compare only the times and ignore the date part.
Python Program
import datetime
# date and time in yyyy/mm/dd hh:mm:ss format
d1 = datetime.datetime(2020, 5, 13, 22, 50, 55)
d2 = datetime.datetime(2020, 5, 13, 7, 50, 55)
d3 = datetime.datetime(2020, 6, 13, 22, 50, 55)
print(d1.time() == d2.time()) #True
print(d1.time() == d3.time()) #False
print(d1.time() < d2.time()) #False
print(d1.time() < d3.time()) #True
print(d1.time() > d2.time()) #False
print(d1.time() > d3.time()) #False
Output
False
True
False
False
True
False
Summary
Summarizing this Python Tutorial, we learned how to compare two DateTime objects, how to compare dates of DateTime objects and how to compare times of DateTime objects. Similarly, you can compare DateTime objects on a more granular level like, if one has greater month, or lesser day, or more early hour and such, by accessing the corresponding value from datetime object.