Cuando trabaje con fechas y horas en Python, a menudo necesitará calcular la diferencia horaria. En este tutorial, aprenderá a calcular la diferencia entre dos marcas de tiempo en horas, minutos y segundos.
Al final de este tutorial, habrás aprendido:
- como usar python
datetime
módulo para trabajar con fechas y horas, - qué
timedelta
son los objetos, y cómo son útiles, y - calcule la diferencia de tiempo entre dos marcas de tiempo, en horas, minutos y segundos.
Empecemos.
How to use Python’s datetime module
Para trabajar con fechas y horas en Python, usará el datetime
módulo. los datetime
módulo es parte de la biblioteca estándar de Python. De modo que puede seguir adelante e importarlo a su entorno de trabajo de inmediato, así:
import datetime
Para calcular la diferencia horaria, debe crear dos marcas de tiempo diferentes. Puedes elegir crear:
- dos
date
objetos, - dos
time
objetos, o - una combinación de ambos
date
ytime
-datetime
objetos.
Cómo crear un objeto de fecha en Python
Importemos el date
clase del módulo de fecha y hora. Para crear un objeto de fecha en Python, puede usar la sintaxis general datetime.date(<year>,<month>,<day>)
. He aquí un ejemplo de cómo crear un date
objeto date1
:
from datetime import date
date1 = datetime.date(2022,3,27)
print(date1)
# Output: 2022-03-27
Puedes probar el código en el Compilador Geekflare Python Probar. O, instalar Python en tu ordenador.
Como se muestra arriba, cuando imprime la fecha, se formatea en el YYYY-MM-DD
formato para fechas.
Nota:: asegúrese de especificar el mes como un número entero sin cualquier ceros a la izquierda. Es probable que esté acostumbrado a agregar un cero inicial al mes cuando escribe fechas.
Por ejemplo, para especificar una fecha en junio, el sexto mes del año: use 6 y no 6.
Por ejemplo, intente ejecutar el siguiente fragmento de código, donde el mes se ha mencionado como 03
en lugar de solo 3
. Verá que arroja un error de sintaxis como se muestra:
date1 = datetime.date(2022,03,27)
print(date1)
# Error Message
File "<ipython-input-12-6eb72084e6ce>", line 1
date1 = datetime.date(2022,03,27)
^
SyntaxError: invalid token
Veamos ahora cómo crear un time
objeto en Python.
Cómo crear un objeto de tiempo en Python
Para crear un objeto de tiempo, importemos el time
clase. Cualquier objeto de tiempo de Python se puede crear usando el time
clase especificando los siguientes atributos de clase: hour
, minute
, second
y microsecond
.
Sin embargo, todos estos atributos son opcional. Si no especifica un determinado atributo, por ejemplo, second
, está configurado para 0
por defecto
El siguiente fragmento de código muestra cómo puede crear un objeto de tiempo time1
. Como con el date
objeto, puede imprimir el time
objeto para ver la hora formateada.
from datetime import time
time1 = datetime.time(13,27,45,4600)
print(time1)
# Output: 13:27:45.004600
Cómo crear un objeto de fecha y hora en Python
Como se puede ver, el date
objeto no tiene información sobre el tiempo. Y el time
El objeto no contiene información sobre la fecha.
Sin embargo, en la práctica, necesitará la información de la fecha y la hora. Por lo que se recomienda utilizar el datetime
clase en su lugar.
Puede acceder al datetime
clase y crear datetime
objetos en Python, como se muestra a continuación:
dt1 = datetime.datetime(2022,3,27,13,27,45,46000)
print(dt1)
# Output: 2022-03-27 13:27:45.046000
Ahora vamos a crear otro objeto de fecha y hora dt2
sin el second
atributo. Puedes ver que está configurado para 0
– el valor predeterminado.
dt2 = datetime.datetime(2022,6,30,14,28)
print(dt2)
# Output: 2022-06-30 14:28:00
Hasta ahora ha aprendido a crear marcas de tiempo en Python, como fechas, horas y fechas y horas. Ahora es el momento de ver cómo puede calcular la diferencia entre dos marcas de tiempo.
Dirígete a la siguiente sección para averiguarlo.
How to use timedelta object in Python
En Python timedelta
denota un lapso de tiempo. es la diferencia entre dos date
, time
o datetime
objetos.
Si sumas o restas dos date
, time
o datetime
objetos, obtendrás un timedelta
objeto. Esta timedelta
El objeto tiene atributos y métodos útiles que pueden ayudar a calcular la diferencia horaria.
Sigamos adelante y calculemos la diferencia entre los dos. datetime
objetos dt1
y dt2
.
dt1 = datetime.datetime(2022,3,27,13,27,45,46000)
dt2 = datetime.datetime(2022,6,30,14,28)
tdelta = dt2 - dt1
print(tdelta)
print(type(tdelta))
# Output
95 days, 1:00:14.954000
<class 'datetime.timedelta'>
En el fragmento de código anterior, puede ver que el tdelta
variable contiene la diferencia de tiempo entre dt1
y dt2
. Y el tipo de tdelta
se verifica que es de la clase timedelta
usando Python's incorporado type()
función.
Ahora codifiquemos otro ejemplo.
How to find time difference between two dates
Tomemos un ejemplo simple pero interesante.
Problema: Para calcular el diferencia horaria entre la fecha actual (hoy) y su cumpleaños.
Para hacer esto, configure ahora, como la primera marca de tiempo, y su cumpleaños como la segunda marca de tiempo.
Como primer paso, vamos a crear dos datetime
objetos:
- uno para hoy, llamémoslo
today
y - otro para tu cumpleaños, llamémoslo
bday
La datetime
la clase tiene el now()
método que le da la fecha y hora local actual. Así que usémoslo para obtener today
—nuestra fecha de referencia.
today = datetime.datetime.now()
print(today)
# Sample Output: 2022-01-22 09:10:18.489538
En el siguiente código, reemplace bday
con tu cumpleaños para calcular el tiempo que falta para tu cumpleaños este año.
Si estás leyendo esto después de que haya pasado tu cumpleaños, siéntete libre de establecer bday
a tu próximo cumpleaños.
bday = datetime.datetime(2022,8,30,11,59)
print(bday)
# Sample Output: 2022-08-30 11:59:00
El siguiente paso es calcular time_diff
el cual es un timedleta
objeto, como se explicó anteriormente. simplemente resta today
a partir de su bday
, y tendrás la diferencia horaria.
time_diff = bday - today
print(f"Your birthday is in {time_diff}")
# Output
Your birthday is in 220 days, 2:46:00.127416
Para saber el número de días restantes, utilice el atributo de días en time_diff
, como se muestra:
tdays = time_diff.days
print(f"Your birthday is in {tdays} days.")
# Output
Your birthday is in 220 days.
How to find time difference in seconds
Calculemos ahora a cuántos segundos falta tu cumpleaños.
Para calcular la diferencia de tiempo total en segundos, utilice el total_seconds()
método en el timedelta
objeto time_diff
.
tsecs = time_diff.total_seconds()
print(f"Your birthday is {tsecs} seconds away.")
# Output
Your birthday is 19017960.127416 seconds away.
Bueno, ¡esa es una espera demasiado larga!
Dicho esto, ahora sabe cómo calcular la diferencia de tiempo entre dos marcas de tiempo en segundos.
Ahora revisemos algunos conceptos básicos y escribamos lo siguiente. Un día se compone de 24 horas, una hora tiene una duración de 60 minutos y 60 segundos componen un minuto.
Esto se resume en la siguiente imagen:

Entonces, para convertir de segundos a minutos, horas y días, puede usar la siguiente tabla y dividir por el factor de conversión correspondiente.

En las siguientes secciones, convertiremos la diferencia horaria en segundos a minutos y horas.
How to find time difference in minutes
Para obtener la diferencia horaria en minutos, solo necesitas dividir el total de segundos por 60.
dividamos tsecs
por 60, y almacenarlo en una variable llamada tmins
, Así:
tmins = tsecs/60
print(f"Your birthday is {tmins} minutes away.")
# Output
Your birthday is 316966.0021236 minutes away.
How to find time difference in hours
Ahora que ha calculado la diferencia horaria en minutos, puede dividirla por un factor de 60 para obtener la diferencia en horas. O podrías dividir el total de segundos por 60*60 = 3600.
thrs = tsecs/(60*60)
print(f"Your birthday is {thrs} hours away.")
# Output
Your birthday is 5282.76670206 hours away.
Ahora ha aprendido a calcular la diferencia horaria en cualquier unidad de su elección.
Conclusión
En este tutorial, ha aprendido cómo:
- crear y trabajar con fechas y horas usando Python's
datetime
módulo, - utilizan el
timedelta
objetos para obtener un lapso de tiempo, o diferencia de tiempo, y - calcular la diferencia horaria en segundos, minutos y horas.
Espero que hayas encontrado útil este tutorial. Ahora que sabe todo acerca de cómo calcular la diferencia horaria en Python, es hora de pon en práctica tus habilidades.
¡Feliz aprendizaje y codificación!
aprender a escribir igual o no igual al código or haz un juego de serpientes en python aquí.