Tengo una lista de objetos de fecha y hora y quiero encontrar el más antiguo o el más joven. Algunas de estas fechas podrían ser en el futuro.
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
]
¿Cuál es la forma más óptima de hacerlo? Estaba pensando en comparar datetime.now () con cada uno de esos.
max
ymin
?Respuestas:
Más antiguo:
Más joven antes de ahora:
now = datetime.datetime.now(pytz.utc) youngest = max(dt for dt in datetimes if dt < now)
fuente
Oldest before now
)date
valores), por lo que solo se pueden comparar alfabéticamente. Si, en cambio, tuviera una matriz de valoresdate
odatetime
, se compararían correctamente.Dada una lista de fechas
dates
:La fecha máxima es
max(dates)
La fecha mínima es
min(dates)
fuente
Las fechas y horas son comparables; para que puedas usar
max(datetimes_list)
ymin(datetimes_list)
fuente
has probado esto:
>>> 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)
fuente
El módulo de fecha y hora tiene sus propias versiones de min y max como métodos disponibles. https://docs.python.org/2/library/datetime.html
fuente