从日期时间列表中获取最早和最晚时间

时间:2015-04-14 08:49:15

标签: python django datetime

我有,

timestamp=[]
for x in model_obj:
     timestamp.append(x.start_time)

print timestamp

结果:

[datetime.datetime(2014, 9, 2, 19, 40, 1, tzinfo=<UTC>), datetime.datetime(2014, 9, 2, 19, 40, 14, tzinfo=<UTC>), datetime.datetime(2014, 9, 2, 19, 40, 7, tzinfo=<UTC>), datetime.datetime(2014, 9, 2, 21, 53, tzinfo=<UTC>), datetime.datetime(2014, 9, 2, 22, 25, 24, tzinfo=<UTC>), datetime.datetime(2014, 9, 2, 22, 2
5, 52, tzinfo=<UTC>)]

我的问题是:如何从python的这个日期时间列表中获取最早和最晚的时间?

1 个答案:

答案 0 :(得分:7)

使用内置的min() / max()功能:

earliest = min(timestamp)
latest = max(timestamp)

作为旁注,我建议您使用list comprehension

构建列表
timestamp = [x.start_time for x in model_obj]

更新:最早可表示的datetime0001-01-01 00:00:00,据我所知,0000-00-00日期无法从数据库加载而您获取None字段中的x.Date_Time_End

问题是:您的任务是否允许您忽略此日期时间?如果是,那么只需从列表中筛选出None值:

end = [x.Date_Time_End for model2_obj if x.Date_Time_End]
end_time = max(end)