Tecnología

Inicio

Tiempo de Java Tutoriales

El lenguaje Java mantiene un registro de tiempo completo en términos de la cantidad de milisegundos que separan un momento, desde la medianoche del 1 de enero de 1970 UTC y almacena este valor como un entero largo (64 bits). Esto le permite soportar todo momento posibles que caen dentro de 290 millones de años de 1970, en una u otra dirección. Este tiempo es ya sea convertida a un formato más útil por el programador o por una de las clases de fecha y hora estándar de Java.

Timing un bloque de código

El uso más simple de tiempo en Java es lo que se requiere medir el tiempo de un bloque de código. Simplemente llame System.currentTimeMillis () y almacenar esto en un entero largo antes de que el bloque de código que desee en cuando. Por ejemplo:

larga horaInicio = System.currentTimeMillis ()
IR

Y luego, después de su bloque de código termina (o durante si lo desea para representar el tiempo transcurrido), llame System.currentTimeMillis () de nuevo y restar startTime de ella. Por ejemplo:

larga elapsedTime = System.currentTimeMillis () - fecha de inicio
IR

Si desea una representación más precisa del tiempo de milisegundos, también puede reemplaza currentTimeMillis () con nanoTime ().

El uso de fechas y calendarios

La función currentTimeMillis y nanoTime nos expone a los fundamentos de tratar con el tiempo dentro de un programa, pero no con el trato con el tiempo en términos de unidades comunes como las horas, los días y los años. Afortunadamente, Java proporciona una clase GregorianCalendar para ayudar en el trabajo con unidades más intuitivas de tiempo. A GregorianCalendar puede ser construido sin un argumentos para representar automáticamente la hora actual. Por ejemplo:

GregorianCalendar horaActual = new GregorianCalendar ()
IR

O puede construirse utilizando uno de los dos métodos siguientes para un tiempo específico, ya sea en el pasado o en el futuro:

reunión GregorianCalendar = new GregorianCalendar (2009, 12, 14, 8, 00); // 08 a.m. el 14 de diciembre 2009
GregorianCalendar meetingEnds = new GregorianCalendar (2009, 12, 14, 8, 46, 23); // 8:46:23 AM el 14 de diciembre 2009

Para utilizar nuestros objetos GregorianCalendar, tendremos que convertir el valor a una clase Fecha. Por ejemplo:

Fecha meetingDate = meeting.getTime ()
IR
Fecha meetingEndsDate = meetingEnds.getTime ();

Calculando el tiempo transcurrido

Calcular el tiempo transcurrido a partir de dos objetos de fecha es entonces una cuestión sencilla.

larga elapsedTime = meetingEndsDate.getTime () - meetingDate.getTime ()
IR

Esto nos dará el tiempo transcurrido en milisegundos, que se puede convertir en unidades más intuitivos con un poco de aritmética simple.

El uso de DateFormat

Existe una herramienta más importante en Java para el tiempo de manipulación, y que es la clase DateFormat, que ofrece una variedad de métodos para imprimirla objetos Date a cadenas y cuerdas para leer de nuevo en las fechas. Por ejemplo:

Cadena meetingString = DateFormat.getDateInstance (DateFormat.MEDIUM) .formato (meetingDate)
IR

El argumento dado a getDateInstance () representa el estilo utilizado para la producción de la fecha. Algunos formatos válidos incluyen COMPLETO, larga, media y corta. BREVE imprimirá el año, mes y día completo en números, mientras que COMPLETO explicará en detalles como la zona horaria a fin de dar la máxima información sobre la fecha posible.