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 façon la plus optimale de procéder? Je pensais à comparer datetime.now () à chacun d'eux.
Le plus ancien:
oldest = min(datetimes)
Plus jeune avant maintenant:
now = datetime.datetime.now(pytz.utc)
youngest = max(dt for dt in datetimes if dt < now)
Étant donné une liste de dates dates
:
La date maximale est max(dates)
La date min est min(dates)
Les horaires sont comparables; vous pouvez donc utiliser max(datetimes_list)
et min(datetimes_list)
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)
Le module datetime a ses propres versions de min et max comme méthodes disponibles. https://docs.python.org/2/library/datetime.html