import datetime
today = datetime.date.today()
today
datetime.date(2020, 10, 28)
now = datetime.datetime.now()
now
datetime.datetime(2020, 10, 28, 9, 55, 31, 64038)
sorted([now, today])
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-4-97aef87903c9> in <module> ----> 1 sorted([now, today]) TypeError: can't compare datetime.datetime to datetime.date
def dates_before_datetimes(dt):
if isinstance(dt, datetime.datetime):
return (dt.date(), dt) # return a length-2 tuple with date as the first item, datetime as the second
elif isinstance(dt, datetime.date):
return (dt,) # return a length-1 tuple with date object
dates_before_datetimes(today)
(datetime.date(2020, 10, 28),)
dates_before_datetimes(now)
(datetime.date(2020, 10, 28), datetime.datetime(2020, 10, 28, 9, 55, 31, 64038))
sorted([now, today], key=dates_before_datetimes)
[datetime.date(2020, 10, 28), datetime.datetime(2020, 10, 28, 9, 55, 31, 64038)]