Il linguaggio Java tiene traccia del tempo interamente in termini di numero di millisecondi che separano un attimo da mezzanotte , 1 Gennaio 1970 UTC e memorizza questo valore come un lungo (64 bit) integer . Ciò consente di supportare ogni momento possibile che rientrano all'interno 290,000,000 anni del 1970 in entrambe le direzioni . Questa volta si sia convertito in un formato più utile dal programmatore o da una delle classi di data e ora standard di Java . Timing di un blocco di codice
L'utilizzo più semplice di tempo in Java è ciò che è necessario per il tempo di un blocco di codice . Basta chiamare System.currentTimeMillis ( ) e memorizzare questo in un intero lungo prima che il blocco di codice che si desidera tempo . Per esempio :
lungo startTime = System.currentTimeMillis ();
E poi, dopo il vostro blocco di finiture di codice ( o durante se lo desiderate per rappresentare il tempo trascorso ) , chiamata System.currentTimeMillis ( ) di nuovo e sottrarre il startTime da esso. Per esempio :
lungo elapsedTime = System.currentTimeMillis ( ) - startTime ;
Se desiderate una rappresentazione più accurata del tempo di millisecondi , si può sostituisce anche currentTimeMillis ( ) con nanoTime ( ) .
Utilizzando Date e Calendari
La funzione nanoTime currentTimeMillis e ci espone i principi fondamentali di trattare con il tempo all'interno di un programma , ma non trattare con il tempo in termini di comune unità come ore, giorni e anni . Fortunatamente, Java fornisce una classe CregorianCalendar per aiutare nel lavoro con le unità più intuitivi di tempo . Un CregorianCalendar può essere costruito senza un argomento per rappresentare automaticamente l'ora corrente . Per esempio :
CregorianCalendar currentTime = new GregorianCalendar ( ) ;
oppure può essere costruito utilizzando uno dei seguenti due metodi per un tempo specifico sia nel passato o nel futuro :
< p > incontro CregorianCalendar = new GregorianCalendar (2009 , 12 , 14 , 8 , 00 ) ; //08:00 il 14 dicembre , meetingEnds 2009GregorianCalendar = new GregorianCalendar (2009 , 12 , 14 , 8 , 46 , 23 ) ; //8:46:23 il 14 Dicembre, 2009
Per utilizzare i nostri oggetti CregorianCalendar , avremo bisogno di convertire il valore in una classe Date . Per esempio :
Data meetingDate = meeting.getTime (); Data meetingEndsDate = meetingEnds.getTime ();
Calcolo del tempo trascorso
< p > Calcolo del tempo trascorso da due oggetti di data è quindi una semplice questione
lungo elapsedTime = meetingEndsDate.getTime ( ) - meetingDate.getTime ( ) .
Questo ci darà il tempo trascorso in millisecondi , che possono essere convertiti in unità più intuitivi con qualche semplice aritmetica.
Utilizzando DateFormat
Vi è un altro strumento importante in Java per la gestione del tempo, e che è la classe DateFormat , che fornisce una varietà di metodi per outputing oggetti Date di stringhe e per la lettura di stringhe di nuovo in date . . Ad esempio :
String meetingString = DateFormat.getDateInstance ( DateFormat.MEDIUM ) formato ( meetingDate ) ;
L'argomento dato a getDateInstance ( ) rappresenta lo stile utilizzato per emettere la data . Alcuni formati validi includono PIENO , lunga, media e breve. BREVE stamperà l'anno , mese e giorno del tutto in numeri , mentre completo sarà precisare dettagli come il fuso orario al fine di dare quante più informazioni sulla data possibile.