Geekflare cuenta con el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliados comprando enlaces en este sitio.
Comparte en:

Cómo calcular la diferencia horaria en Python

alojamiento python
Escáner de seguridad de aplicaciones web Invicti – la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

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 y time-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, timeo datetime objetos.

Si sumas o restas dos date, timeo 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:

Horas, minutos y segundos

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.

Tabla de conversión de tiempo

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í.

Gracias a nuestros patrocinadores
Más lecturas interesantes sobre el desarrollo
Impulse su negocio
Algunas de las herramientas y servicios para ayudar a que su negocio crezca.
  • Invicti utiliza Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en cuestión de horas.
    Prueba Invicti
  • Web scraping, proxy residencial, administrador de proxy, desbloqueador web, rastreador de motores de búsqueda y todo lo que necesita para recopilar datos web.
    Prueba Brightdata
  • Semrush es una solución de marketing digital todo en uno con más de 50 herramientas en SEO, redes sociales y marketing de contenido.
    Prueba Semrush
  • Intruder es un escáner de vulnerabilidades en línea que encuentra debilidades de ciberseguridad en su infraestructura, para evitar costosas filtraciones de datos.
    Intente Intruder