Cómo utilizar el módulo de tiempo de Python

El módulo de tiempo de Python ofrece una amplia variedad de funciones relacionadas con el tiempo y, a menudo, es útil al crear su backend con Python. Con esta biblioteca, puede obtener la fecha y la hora actuales en formatos estándar. Puede calcular diferencias de tiempo y programar operaciones específicas de tiempo en su código.

Con ejemplos prácticos, le mostraremos algunas de las formas más útiles de utilizar la biblioteca de tiempo.

Introducción a la biblioteca de tiempo

El módulo de tiempo es uno de los tesoros más intrigantes del versátil repositorio de bibliotecas de Python. Está integrado en Python, por lo que no es necesario instalarlo por separado. Solo necesita importarlo a su código para comenzar a usarlo.

Aunque la biblioteca de tiempo de Python tiene muchos métodos, y puede parecer abrumador al principio, nos centraremos en los que probablemente usará con más frecuencia.

Para comenzar a usar el módulo de tiempo , impórtelo en su secuencia de comandos con la siguiente declaración:

 import time

Obtenga la época predeterminada

La firma de época de la biblioteca de tiempo comienza el primer día y hora de 1970 en los sistemas Unix de forma predeterminada. Sin embargo, esto depende de la plataforma. Por lo tanto, la época o la fecha y la hora de inicio pueden ser diferentes, según el sistema operativo que esté utilizando.

Para ver la época predeterminada en su sistema operativo:

 import time
default_base = time.gmtime(0)
print(default_base)

time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1,
tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3,
tm_yday=1, tm_isdst=0)

La salida de tupla anterior (un objeto de tipo time.struct_time ) contiene la estructura de tiempo del módulo de tiempo . Es donde la biblioteca almacena los detalles de fecha y hora de forma predeterminada. A partir del resultado, tm_year se remonta a 1970, y algunas otras propiedades tienen cero como valor predeterminado. Por cierto, gmtime devuelve la hora media de Greenwich, que puede ser diferente de su zona horaria local.

Puede obtener la época local usando time.localtime () en su lugar:

 import time
default_base = time.localtime(0)
print(default_base)

La ejecución del código anterior puede cambiar los valores de propiedades individuales, según su zona horaria local. Por ejemplo, durante el horario de verano británico en el Reino Unido, tm_hour será "1" en lugar de "0" de GMT.

Relacionado: Cómo ejecutar un script de Python

Ver el detalle de fecha y hora actual

Para obtener la hora actual como un objeto time.struct_time , llame a time.gmtime () sin ningún argumento:

 import time
current_time = time.gmtime()
print(current_time)

time.struct_time(tm_year=2021, tm_mon=10, tm_mday=2,
tm_hour=11, tm_min=13, tm_sec=18, tm_wday=5,
tm_yday=275, tm_isdst=0)

Como hizo en los ejemplos anteriores, reemplace time.gmtime () con time.localtime () para ver su hora local actual.

Calcule el tiempo entre la época y el tiempo actual

Utilice la función time.time () para ver el número de segundos entre la hora actual y la época:

 import time
print("Time difference in seconds:", time.time())

Time difference in seconds: 1633178361.142249

Para ver la diferencia de año:

 import time

# Calculate the number of years:
print("Year difference is approximately:", round(time.time() / (3600 * 365 * 24)), "years")

Year difference is approximately: 52 years

Extraer la hora local actual

A menudo no es necesario en la práctica, pero puede acceder a cada uno de los valores en un objeto time.struct_time accediendo a sus propiedades directamente.

Por ejemplo, para obtener la hora, los minutos y el año actuales de su hora local actual:

 import time

current_local_time = time.localtime()

hours = current_local_time.tm_hour
mins = current_local_time.tm_min
year = current_local_time.tm_year

print(("The local time and year detail are: {}th hour, {}mins, and year {}").format(hours, mins, year))

The local time and year detail are: 11th hour, 49mins, and year 2021

Para automatizar la salida en lugar de codificarla como hicimos anteriormente, puede generar la hora local actual usando la función time.ctime () .

A continuación, se explica cómo ver la hora local actual usando time.ctime () :

 import time
print(time.ctime())

Sat Oct 2 13:58:07 2021

Pero la opción anterior no le da ningún control sobre la salida.

Para manipular la salida, puede secuenciar el formato de hora usando time.strftime () con anotaciones de cadena:

 import time
current_local_time = time.localtime()

# Get the current local time:
current_local_time = time.localtime()

# Stringify the current local time using string annotations:
dtime = time.strftime("The date and time is: %a, %d-%b-%Y, %I:%M %p", current_local_time)

print(dtime)

The date and time is: Sat, 02-Oct-2021, 11:57 AM

En el código anterior, % a representa el nombre abreviado del día actual. % P representa la mañana o la tarde, en su localidad. En inglés, esto se traduce en AM o PM .

Relacionado: ¿Cómo funciona el método Python String format ()?

Puede echar un vistazo a todas las posibles anotaciones de cadena para strftime () en los documentos de Python en su tiempo libre. Siéntase libre de modificarlos como desee, para formatear una hora según sus requisitos específicos. Puede experimentar agregando más opciones de cadena al ejemplo anterior y ver lo que generan. Por ejemplo, puede reemplazar % I con % H para obtener un formato de 24 horas de la hora actual.

Programar código con el módulo de tiempo de Python

Puede retrasar la ejecución del código utilizando la función time.sleep () . Esta función puede ser útil cuando necesita programar solicitudes o ejecutar un programa multiproceso usando Python.

Vamos a ver cómo funciona:

 import time
time.sleep(3)
print("This post will show after 3 seconds")

Tenga en cuenta que time.sleep () solo acepta argumentos flotantes y enteros, que se traducen en segundos. Entonces, si está programando para la próxima hora o minuto, deberá convertirlos en segundos.

Para retrasar la salida en una hora, por ejemplo:

 time.sleep(3600)
print("This post will show after an hour")

Crear un temporizador de cuenta regresiva usando time.sleep ()

Usando la función time.sleep () y Python para bucle , creemos un temporizador de cuenta regresiva que acepte la entrada de un usuario:

 import time
print("Start counting seconds from:")

# Create a timer input field that accepts an integer
timer = int(input())

# Increment the timer so that it starts at the specified input
timer = range(timer + 1)

# Assign the length of the timer to a new variable =>
# Then remove one from timer's length to match its index

v = len(timer) - 1

for i in timer:
# Increment the time every one second
time.sleep(1)

# Concatenate the previous count with the next count
# to prevent new line at each iteration
print(timer[v], end = " ", flush=True)
print("", end = "", flush=True)

# Decrease the length of timer input by one for each iteration
v -= 1

Cuando ejecuta el código anterior y establece su valor de tiempo, disminuye el valor especificado cada segundo hasta que llega a cero.

Haga un uso adecuado de la biblioteca de tiempo de Python

Ahora sabe cómo acceder a la hora actual desde su código Python y manipular la salida de fecha y hora. El módulo de tiempo también es una herramienta valiosa para realizar un seguimiento de las solicitudes en el servidor cuando usa Python para la programación de backend.

Y debido a que las salidas son en su mayoría números enteros o flotantes, puede operar en ellos como desee para obtener su tiempo en horas, días, meses o años.