Ir al contenido

Milisegundos a Hora en Java

Cuando estamos haciendo pruebas de rendimiento de nuestros programas, una forma muy sencilla de medir el tiempo de ejecución en Java es invocando a la función System.currentTimeMillis() entre dos puntos de nuestro programa.

Esta función te da los milisegundos transcurridos desde el 1 de enero de 1970. Esta fecha es tomada como estándar en el mundo de la computación y es denominada “the epoch”.

Posteriormente lo que haremos será restar el tiempo obtenido en los dos puntos y como resultado nos dará el tiempo de ejecución entre estos dos puntos en milisegundos.

Puede ser que como dato técnico esté bien el ver los tiempos en milisegundos, pero en otras necesitaremos ver el dato en un formato de hora, minutos y segundos. Para estos casos no podemos utilizar la función SimpleDateFormat, ya que esta te formatea el dato de los milisegundos desde el 1 de enero de 1970. Es por ello que no nos vale.

Para resolverlo vamos a hacerlo de una forma más “manual”, pero muy sencilla. La idea es la siguiente. Lo primero es dividir los milisegundos entre 3600000. Este valor representa el número de milisegundos de una hora. Así que partiendo la cantidad de milisegundos que tenemos entre este valor tendremos las horas.

long horas = milisegundos / 3600000;

Ahora hay que ver cuántos milisegundos quedan como resto de la división. El resto lo obtenemos mediante el operador %.

long resto = milisegundos % 3600000;

Ahora, de los milisegundos restantes hay que ver cuántos son minutos. Es por ello que dividimos entre 60000. Que son los milisegundos equivalentes a un minuto. El código será como el anterior, primero los minutos y luego el resto.

long minutos = resto / 60000;
resto = resto % 60000;

Con el resto de los minutos aplicaremos la misma técnica para calcular los segundos. En este caso el divisor será 1000. Ya que un segundo son 1000 milisegundos.

long segundos = resto / 1000;

Solo nos quedará el volcar por pantalla nuestro resultado.

System.out.println(horas + ":" + minutos + ":" + segundos);
Foto de Víctor Cuervo

Víctor Cuervo

Programador, Arquitecto IT, álter ego de Línea de Código, amante de las tecnologías, generador de conocimiento y facilitador del aprendizaje.

Descarga el código de Milisegundos a Hora en Java

El artículo explica cómo convertir milisegundos a hora en Java utilizando cálculos simples.

Descargar código