today parse example biblioteca python time datediff

python - parse - ¿Cómo verifico la diferencia, en segundos, entre dos fechas?



python today date (4)

Tenemos la función total_seconds () con Python 2.7. Por favor, consulte el código a continuación para Python 2.6

import datetime import time def diffdates(d1, d2): #Date format: %Y-%m-%d %H:%M:%S return (time.mktime(time.strptime(d2,"%Y-%m-%d %H:%M:%S")) - time.mktime(time.strptime(d1, "%Y-%m-%d %H:%M:%S"))) d1 = datetime.now() d2 = datetime.now() + timedelta(days=1) diff = diffdates(d1, d2)

Tiene que haber una manera más fácil de hacer esto. Tengo objetos que desean actualizarse de vez en cuando, por lo que quiero registrar cuándo se crearon, verificarlos con la marca de tiempo actual y actualizarlos según sea necesario.

datetime.datetime ha demostrado ser difícil, y no quiero sumergirme en la biblioteca ctime. ¿Hay algo más fácil para este tipo de cosas?


si desea calcular las diferencias entre dos fechas conocidas, use total_seconds como este:

import datetime as dt a = dt.datetime(2013,12,30,23,59,59) b = dt.datetime(2013,12,31,23,59,59) (b-a).total_seconds()

86400.0

#note that seconds doesn''t give you what you want: (b-a).seconds

0


>>> from datetime import datetime >>> a = datetime.now() # wait a bit >>> b = datetime.now() >>> d = b - a # yields a timedelta object >>> d.seconds 7

(7 será la cantidad de tiempo que espere un poco más arriba)

Considero que datetime.datetime es bastante útil, por lo que si hay un escenario complicado o incómodo con el que te hayas encontrado, infórmanos.

EDITAR: Gracias a @WoLpH por señalar que no siempre se busca actualizar con tanta frecuencia que los tiempos de las fechas serán muy similares. Al contabilizar los días en el delta, puede manejar discrepancias de marca de tiempo más largas:

>>> a = datetime(2010, 12, 5) >>> b = datetime(2010, 12, 7) >>> d = b - a >>> d.seconds 0 >>> d.days 2 >>> d.seconds + d.days * 86400 172800


import time current = time.time() ...job... end = time.time() diff = end - current

¿Eso funcionaría para ti?