在列表中查找最旧/最旧的date时间对象

我有一个datetime对象的列表,我想find最老的或最年轻的一个。 其中一些date可能在未来。

from datetime import datetime datetime_list = [ datetime(2009, 10, 12, 10, 10), datetime(2010, 10, 12, 10, 10), datetime(2010, 10, 12, 10, 10), datetime(2011, 10, 12, 10, 10), #future datetime(2012, 10, 12, 10, 10), #future ] 

最好的方法是什么? 我正在考虑比较datetime.now()的每一个。

最老的:

 oldest = min(datetimes) 

现在最年轻:

 now = datetime.datetime.now(pytz.utc) youngest = max(dt for dt in datetimes if dt < now) 

鉴于date列表dates

最大date是max(dates)

min(dates)date是min(dates)

date时间是可比较的; 所以你可以使用max(datetimes_list)min(datetimes_list)

你有没有试过这个:

 >>> from datetime import datetime as DT >>> l =[] >>> l.append(DT(1988,12,12)) >>> l.append(DT(1979,12,12)) >>> l.append(DT(1979,12,11)) >>> l.append(DT(2011,12,11)) >>> l.append(DT(2022,12,11)) >>> min(l) datetime.datetime(1979, 12, 11, 0, 0) >>> max(l) datetime.datetime(2022, 12, 11, 0, 0)