Comparing date strings in python
date, datetime, python, python-3.x
Solution
No, there is no spacial thing behind this behavior. As a matter of fact, Python compares the strings lexicographicaly and in this case it works, but it's not the right way to go, because it can also accepts the wrong dates!
Here is a Counterexample:
>>> a ='2009-33-10'
>>> b ='2009-11-1'
>>> a>b
True
As a proper way for dealing with dates you should use `datetime` module which has a lot of tools for working with date objects.
You can convert your strings to date object with `datetime.datetime.strptime` and then you can use basic arithmetic operation to compare your date objects, as they've been supported already by this module.
Problem
``` >> a ='2009-05-10' >>> b ='2009-06-10' >>> a > b False >>> a < b True >>> type(a) <class 'str'> >>> c = '2009-06-09' >>> b < c False >>> b > c True >>> c ='2008-07' >>> b > c True >>> a > c True ``` I tried to compare dates in python3 without using a library and it seems to be working correctly. Is this the real case? Does python really understands that these strings are dates and comparing them according to date format or is something else is going on behind the scenes ?