Python time: todo sobre el uso y funciones del módulo
time
de Python es un módulo que se puede utilizar para obtener fechas en el lenguaje de programación. El módulo ofrece numerosas funciones y utiliza la especificación de tiempo de Unix y los objetos struct_time
.
¿En qué consiste el módulo Python time
y cómo se utiliza?
El módulo time
de Python es de crucial importancia para la implementación y consideración de especificaciones de tiempo en el lenguaje de programación. Entre las tareas que puede realizar este módulo se encuentran la presentación de la hora actual, el formateo de especificaciones de tiempo y la especificación de una duración concreta al ejecutar una función. Para poder utilizar el módulo, primero se debe importar time
de la siguiente forma:
import time
pythonPuedes llevar a cabo diversas funciones con este módulo. Te mostramos las más importantes en los siguientes apartados. Si buscas una alternativa a time
, una buena opción es datetime de Python.
time.time()
y el significado de la marca de tiempo Unix
La base de la función time.time()
es la marca de tiempo de Unix. Esto describe un punto exacto en el pasado a partir del cual se mide el tiempo en un sistema. Para Windows y muchos sistemas Unix, este punto en el tiempo es el 1 de enero de 1970, a las 00:00:00 (Tiempo Universal Coordinado). Python también utiliza este momento como base. Alternativamente, el cálculo a partir de este segundo se denomina “tiempo desde la época”. La función time.time()
te da el número de segundos que han pasado desde este momento a principios de los años 70. Para ello, utiliza el siguiente código:
import time
tiempo_transcurrido = time.time()
print("Segundos transcurridos desde la época: ", tiempo_transcurrido)
pythonObtendremos este resultado:
1716816325
pythontime.ctime()
: presentar los datos de forma legible
Sin embargo, como esta información es normalmente de poca utilidad, time
te ofrece la opción de utilizar la marca de tiempo de Unix como base para una fecha. De este modo, te beneficias de la precisión de esta medida de tiempo, pero obtienes la marca en un formato comprensible. La función adecuada es time.ctime()
. Esta convierte directamente la marca de tiempo Unix en una fecha. El código correspondiente sería el siguiente:
import time
tiempo_transcurrido = 1716816325
tiempo_actual = time.ctime(tiempo_transcurrido)
print("Este es el tiempo actual: ", tiempo_actual)
pythonNuestro resultado será el siguiente. Se tiene en cuenta la hora local:
Esta es la fecha actual: Mon May 27 2024 15:25:25
pythonLa solución ideal para trabajar en tu proyecto web: con Deploy Now de IONOS, puedes desplegar cambios en el código directamente con GitHub y beneficiarte de la personalización en tiempo real. Busca la tarifa que se adecúe a tus necesidades.
time.sleep()
: programar la ejecución de un programa
Sin embargo, time
de Python puede hacer mucho más que mostrar la hora actual. El módulo también se utiliza para controlar o retrasar la ejecución de un programa. La función correspondiente es time.sleep()
y se ejecuta así:
import time
print("Esto se visualizará inmediatamente… ")
time.sleep(5)
print("…y esto en 5 segundos.")
pythonNuestro resultado sería el siguiente:
Esto se visualizará inmediatamente…
…y esto en 5 segundos.
pythonSin embargo, la segunda parte solo se emite tras un retardo de cinco segundos. Puedes averiguar para qué puedes utilizar time.sleep() de Python en nuestro artículo de la Digital Guide.
Objetos struct_time
para time
El objeto struct_time
es la base de muchas funciones time
de Python. Normalmente se utiliza como parámetro o valor de retorno y produce una tupla cuyo valor puede especificarse mediante el índice o el atributo. Para ello se pueden utilizar los siguientes atributos:
Índice | Atributo | Descripción | Valores posibles |
---|---|---|---|
0 | tm_year | Año | 0000, …, 2024, …, 9999 |
1 | tm_mon | Mes | 1, 2, 3, …, 12 |
2 | tm_mday | Día del mes | 1, 2, 3, 31 |
3 | tm_hour | Hora del día | 0, 1, 2, …, 23 |
4 | tm_min | Minutos | 0, 1, 2, …, 59 |
5 | tm_sec | Segundos | 0, 1, 2, …, 60, 61 |
6 | tm_wday | Día de la semana | 0 (para lunes), …, 6 (para domingo) |
7 | tm_yday | Día del año | 1, 2, 3, …, 366 |
8 | tm_isdst | Horario de verano o invierno | 0 (invierno), 1 (verano) o -1 (no especificado) |
time.localtime()
: conexión de struct_time
y el tiempo desde Epoch
La función time.localtime()
utiliza un objeto struct_time
basado en la marca de tiempo Unix. Este sería el código:
import time
tiempo_actual = time.time()
hora_actual = time.localtime(tiempo_actual)
print(hora_actual)
pythonAsí obtenemos el siguiente resultado:
time.struct_time(tm_year=2024, tm_mon=5, tm_mday=27, tm_hour=15, tm_min=25, tm_sec=25, tm_wday=0, tm_yday=148, tm_isdst=1)
pythonAlternativamente, también es posible seleccionar cualquier valor para el parámetro localtime()
. El código será similar a este:
import time
tiempo = time.time()
hora_actual = time.localtime(1716816325)
print(hora_actual)
pythonEl resultado sería el siguiente:
time.struct_time(tm_year=2024, tm_mon=5, tm_mday=27, tm_hour=15, tm_min=25, tm_sec=25, tm_wday=0, tm_yday=148, tm_isdst=1)
pythontime.mktime()
: el equivalente inverso a localtime()
time.mktime()
en time
es la función inversa a localtime()
. Utiliza un objeto struct_time
como parámetro y el sistema devuelve la correspondiente marca de tiempo desde la época. Así se vería el código:
import time
marca_tiempo = time.mktime(hora_local)
print(marca_tiempo)
pythonEl resultado es un valor de segundos en este formato:
1716816325
pythontime.gmtime()
: Tiempo Universal Coordinado para la visualización
time.gmtime()
es en gran parte equivalente a time.localtime()
. Sin embargo, el objeto struct_time
correspondiente se devuelve en Tiempo Universal Coordinado. Este es el código:
import time
marca_tiempo = time.time()
tiempo_universal = time.gmtime(marca_tiempo)
print(tiempo_universal)
pythonPor lo tanto, el resultado de esta función time
difiere en algunos detalles del ejemplo anterior:
time.struct_time(tm_year=2024, tm_mon=5, tm_mday=27, tm_hour=13, tm_min=25, tm_sec=25, tm_wday=0, tm_yday=148, tm_isdst=0)
pythontime.asctime()
: convertir objetos struct_time
en cadenas
Puedes usar time.asctime()
para convertir un objeto struct_time
en una cadena Python. Podría verse así, por ejemplo:
import time
momento_actual = time.localtime()
formto_legible = time.asctime(momento_actual)
print(formato_legible)
pythonDe este modo, obtendrás un mayor resultado inmediato:
Mon May 27 15:25:25 2024
pythontime.strftime()
: crea una cadena con time
Aquí utilizamos diferentes códigos de formato para mostrar la hora actual en el formato deseado. Para darte una idea de los diferentes códigos de formato, enumeramos aquí algunos de los más importantes:
- %Y: representa el año en el formato 0001, …, 2024, …, 9999
- %m: representa el mes y utiliza los números del 01 (enero) al 12 (diciembre)
- %d: representa el día del 01 del mes al 31
- %H: representa la hora en el rango de 00 a 23
- %M: representa el minuto y va de 00 a 59
- %S: representa el segundo del 00 al 61
El código podría ser el siguiente:
import time
momento_actual = time.localtime()
formato_legible = time.strftime("%d-%m-%Y, %H:%M:%S", momento_actual)
print(formato_legible)
pythonEn este caso, el resultado sería:
27-05-2024, 15:25:25
pythontime.strptime()
: convertir cadenas en objetos struct_time
time
también tiene una contrapartida para esto: time.strptime()
utiliza una cadena para dar salida a un objeto struct_time
. Este es el código apropiado:
import time
momento_actual = time.strptime(formato_legible, "%d-%m-%Y, %H: %M:%S")
print(momento_actual)
pythonObtenemos este resultado:
time.struct_time(tm_year=2024, tm_mon=5, tm_mday=27, tm_hour=15, tm_min=25, tm_sec=25, tm_wday=0, tm_yday=148, tm_isdst=1)
pythonEn nuestra Digital Guide encontrarás muchos más artículos sobre este popular lenguaje de programación. Entre otras cosas, tenemos un tutorial de Python, una guía para instalar Python y un artículo sobre diferentes operadores Python.