Cómo comparar dos fechas?
¿Cómo compararía dos fechas para ver cuál es más tarde, usando Python?
Por ejemplo, quiero verificar si la fecha actual es más allá de la última fecha en esta lista que estoy creando, de fechas de vacaciones, para que envíe un correo electrónico automáticamente, diciéndole al administrador que actualice las vacaciones.archivo txt.
3 answers
Utilice el método datetime
y el operador <
y su pariente.
>>> from datetime import datetime
>>> past = datetime.now()
>>> present = datetime.now()
>>> past < present
True
>>> datetime(3000, 1, 1) < present
False
>>> present - datetime(2000, 4, 4)
datetime.timedelta(4242, 75703, 762105)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-31 19:03:51
Use time
Digamos que usted tiene las fechas iniciales como cadenas como estas:date1 = "31/12/2015"
date2 = "01/01/2016"
Puede hacer lo siguiente:newdate1 = time.strptime(date1, "%d/%m/%Y")
y newdate2 = time.strptime(date2, "%d/%m/%Y")
para convertirlos al formato de fecha de Python. Entonces, la comparación es obvia:newdate1 > newdate2
volverá False
newdate1 < newdate2
volverá True
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-22 14:07:28
datetime.date(2011, 1, 1) < datetime.date(2011, 1, 2)
volverá True
.
datetime.date(2011, 1, 1) - datetime.date(2011, 1, 2)
volverá datetime.timedelta(-1)
.
datetime.date(2011, 1, 1) + datetime.date(2011, 1, 2)
volverá datetime.timedelta(1)
.
Véase el docs.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-11-15 20:09:27