J'ai une liste d'objets datetime, et je veux trouver le plus ancien ou le plus jeune. Certaines de ces dates pourraient être dans le futur.
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
]
Quelle est la manière la plus optimale de le faire? Je pensais comparer datetime.now () à chacun d'entre eux.
max
etmin
?Réponses:
Le plus ancien:
Le plus jeune avant maintenant:
now = datetime.datetime.now(pytz.utc) youngest = max(dt for dt in datetimes if dt < now)
la source
Oldest before now
)date
valeurs), donc elles ne peuvent vraiment être comparées que par ordre alphabétique. Si vous aviez à la place un tableau de valeursdate
oudatetime
, elles seraient comparées correctement.Compte tenu d'une liste de dates
dates
:La date maximale est
max(dates)
La date minimale est
min(dates)
la source
Les datetimes sont comparables; afin que vous puissiez utiliser
max(datetimes_list)
etmin(datetimes_list)
la source
avez-vous essayé ceci:
>>> 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)
la source
Le module datetime a ses propres versions de min et max comme méthodes disponibles. https://docs.python.org/2/library/datetime.html
la source