El lenguaje Java mantiene un registro de tiempo completo en cuanto al número de milisegundos que separan un momento desde la medianoche del 1 de enero de 1970 UTC y almacena este valor como un largo ( 64 bits) entero . Esto le permite soportar todo momento posibles que caen dentro de 290 millones años de 1970 en cualquier dirección . Esta vez se sea convertido a un formato más útil por el programador o por una de las clases de fecha y hora estándar de Java. Medir el tiempo de un bloque de código
El uso más sencillo de tiempo en Java es lo que se requiere en cuando 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 :
largo startTime = System.currentTimeMillis ();
Y luego, después de su bloque de acabados de código (o en caso de que desee que represente el tiempo transcurrido) , llamada System.currentTimeMillis () de nuevo y restar el startTime de ella. Por ejemplo :
largo elapsedTime = System.currentTimeMillis () - startTime ;
Si desea una representación más precisa del tiempo de milisegundos , puede también reemplaza currentTimeMillis () con nanoTime ().
Usando fechas y calendarios
La función nanoTime currentTimeMillis y 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 común unidades como horas , días y años . Afortunadamente , Java proporciona una clase GregorianCalendar para ayudar en el trabajo con unidades más intuitivas de tiempo. Un GregorianCalendar puede ser construido sin un argumentos para representar automáticamente la hora actual . Por ejemplo :
GregorianCalendar horaActual GregorianCalendar = new ();
O se pueden construir usando uno de los dos métodos siguientes para una hora específica , ya sea en el pasado o en el futuro :
< p> reunión GregorianCalendar = new GregorianCalendar (2009, 12 , 14 , 8 , 00 ) //8:00 AM del 14 de diciembre de meetingEnds 2009GregorianCalendar = new GregorianCalendar (2009, 12 , 14 , 8 , 46, 23 ) //08:46:23 AM el 14 de diciembre de 2009
para utilizar nuestros objetos GregorianCalendar , tendremos que convertir el valor en una clase Date. Por ejemplo :
Fecha meetingDate = meeting.getTime (); Fecha meetingEndsDate = meetingEnds.getTime ();
Calcular tiempo transcurrido
Cálculo del tiempo transcurrido a partir de dos objetos de fecha es entonces un asunto sencillo
largo elapsedTime = meetingEndsDate.getTime () - meetingDate.getTime ( ) .
Esto nos dará el tiempo transcurrido en milisegundos , que se puede convertir en unidades más intuitivas con un poco de aritmética simple .
Uso DateFormat
es una herramienta más importante en Java para el manejo de tiempo, y que es la clase DateFormat , que ofrece una variedad de métodos para imprimirla objetos Date con cuerdas y cadenas para la lectura de nuevo en fechas. . Por ejemplo :
Cadena meetingString = DateFormat.getDateInstance ( DateFormat.MEDIUM ) Formato ( meetingDate ) ;
El argumento dado a getDateInstance () representa el estilo utilizado para la salida de la fecha . Algunos formatos válidos son FULL larga, media y corta. SHORT imprimirá el año , mes y día completo en números , mientras que completa será explicar detalles como la zona horaria con el fin de dar la mayor información acerca de la fecha posible.