在列表中找到最旧/最年轻的日期时间对象

137 投票
5 回答
182572 浏览
提问于 2025-04-16 05:25

我有一堆日期时间对象,我想找出最早或最晚的一个。其中有些日期可能是在未来。

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())和每一个日期进行比较。

5 个回答

19

日期和时间是可以进行比较的;所以你可以使用 max(datetimes_list) 来找出列表中最新的日期和时间,使用 min(datetimes_list) 来找出最早的日期和时间。

42

给定一个日期列表 dates

最大日期是 max(dates)

最小日期是 min(dates)

183

最早的:

oldest = min(datetimes)

现在之前最年轻的:

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

撰写回答