Milisegundos a Hora en Java

29/mar/2007 Java , , 6 Comentarios
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 epoc".

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 SimpleDataFormat, 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. A si que partiendo la cantidad de milisegundos que tenemos entre este valor tendremos las horas.

  1. hora = milisegundos/3600000;

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

  1. estohora = milisegundos%3600000;

Ahora, de los milisegundos restantes hay que ver cuantos 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.

  1. minuto = restohora/60000;
  2. restominuto = restohora%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.

Solo nos quedará el volcar por pantalla nuestro resultado.

  1. System.out.println(hora + ":" + minuto + ":" + segundo + "." + restosegundo);

Vídeos sobre Java

Difunde el Conocimiento

Si te ha gustado el artículo o te ha sido de utilidad, no dejes de compartirlo con tus amigos en las redes sociales... Te estaremos muy agradecidos. :-D

6 comentarios en “Milisegundos a Hora en Java”

Víctor Cuervo

Lucy

Muchas gracias!! me ayudo muchisimo :D

Víctor Cuervo

Víctor Cuervo

@Carlos,

Me alegro que te haya servido. Ten en cuenta que el tiempo que te devuelve los milisegundos puede tener depreciación dependiendo de la precisión de la JVM y del sistema operativo.

Adicionalmente como elemento más preciso tienes el método System.nanoTime().

Espero que te sirva. Saludos.

Víctor Cuervo

Carlos

Exelente me ayudo mucho … al momento de comprobar el valor del resultado de mi programa java con la duracion q me muestra el explorador de windows o un reproductor no son los mismo

Me gustaria obtener un valor mas exacto no se como podria hacerlo gracias

Víctor Cuervo

Víctor Cuervo

@Alf, @yukinomairi,

Muchas gracias por el comentario. Se agradecen mucho y animan a seguir escribiendo más cosas.

Víctor Cuervo

yukinomairi

Muchas gracias por el post. Ha sido de gran ayuda :D

Víctor Cuervo

Alf

Gracias por el post. Me ha sido muy útil.

Un saludo

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*


*