En el post de hoy te enseñaré a convertir una cantidad de segundos a un texto legible que muestra el tiempo en horas, minutos y segundos usando Python.
Por ejemplo, convertir 6000 segundos a 01:40:00, mostrando en formato HH:MM:SS.
Lo que haremos será extraer, como enteros, los minutos y horas de los segundos.
Primero obtenemos las horas a los que equivalen esos segundos (de manera entera) y restamos esa cantidad extraída. Para esto dividimos los segundos entre 60 entre 60 (sí, dos veces).
Después de eso extraemos los minutos usando la misma técnica (ahora dividiendo entre 60 una vez), y restamos esa cantidad que hemos extraído.
Finalmente para sacar los segundos ya no hacemos ninguna división, pues ya fuimos sustrayendo las horas y minutos, así que el sobrante son los segundos que vamos a usar.
Nota: en la conversión de segundos a horas me parece que se puede optimizar dividiendo entre 3600.
Nota 2: vamos a usar la función para agregar ceros a la izquierda en Python.
Entonces veamos la función. La misma recibe la cantidad de segundos y devuelve el tiempo legible en formato de horas, minutos y segundos. Algo así como se vería en un temporizador, reloj, cronómetro, etcétera.
"""
https://parzibyte.me/blog
"""
def segundos_a_segundos_minutos_y_horas(segundos):
horas = int(segundos / 60 / 60)
segundos -= horas*60*60
minutos = int(segundos/60)
segundos -= minutos*60
return f"{horas:02d}:{minutos:02d}:{segundos:02d}"
Para usarla podemos usar el siguiente código de ejemplo:
"""
https://parzibyte.me/blog
"""
def segundos_a_segundos_minutos_y_horas(segundos):
horas = int(segundos / 60 / 60)
segundos -= horas*60*60
minutos = int(segundos/60)
segundos -= minutos*60
return f"{horas:02d}:{minutos:02d}:{segundos:02d}"
segundos = [10, 100, 40, 1500, 6000, 60, 59, 100000]
for cantidad_segundos in segundos:
convertido = segundos_a_segundos_minutos_y_horas(cantidad_segundos)
print(f"Los {cantidad_segundos} segundos se convierten a {convertido}")
La salida es como se ve a continuación:
Por aquí te dejo más tutoriales de Python.
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Esta web usa cookies.
Ver comentarios
Hola, muchisimas gracias. Pregunta, cómo podría hacer si quiero pasar de milisegundos a formato hh:mm:ss:msmsms. Es para pasar una lista de milisegundos a formato SRT de subtitulado. O sea, que haya milisegundos ademas del formato hh:mm:ss y se parte de milisegundos, no de segundos.
Hola. Gracias por sus comentarios. Si tiene alguna consulta o duda, solicitud de creación de un programa, solicitud de vídeo o solicitud de cambio de software estoy para servirle en https://parzibyte.me/#contacto
Saludos!