The Java-språket holder styr på tiden helt i forhold til antall millisekunder som skiller et øyeblikk fra midnatt , January 1, 1970 UTC og lagrer denne verdien som en lang ( 64 bit ) heltall . Dette gjør det mulig å støtte alle mulige tider som faller innenfor 290 millioner år med 1970 i begge retninger . Denne gangen er enten konvertert til en mer nyttig måte av programmerer eller av en av Javas standard dato og klokkeslett klasser . Timing en blokk med kode
Den enkleste bruk av tid i Java er hva som kreves til annen en blokk med kode . Bare ring System.currentTimeMillis ( ) og lagre dette i en lang heltall før blokken med kode du ønsker å tid . For eksempel : en
lang StartTime = System.currentTimeMillis ();
Og så, etter din blokk med kode ferdig ( eller under hvis du ønsker den skal representere forbrukt tid) , samtale System.currentTimeMillis () igjen og trekk fra StartTime fra det. For eksempel : en
lang ElapsedTime = System.currentTimeMillis ( ) - StartTime ;
p Hvis du ønsker en mer nøyaktig gjengivelse av tid enn millisekunder , kan du også erstatter currentTimeMillis () med nanoTime ( ) .
hjelp datoer og kalendere
The currentTimeMillis og nanoTime funksjon eksponerer oss til det grunnleggende for å håndtere tid innenfor et program , men ikke med å håndtere tid i form av felles enheter som timer, dager og år. Heldigvis gir Java en GregorianCalendar klasse for å bistå i arbeidet med mer intuitive enheter av gangen. En GregorianCalendar kan bygges uten en argumenter for automatisk å representere gjeldende klokkeslett . For eksempel : en
GregorianCalendar currentTime = ny GregorianCalendar ();
Eller det kan konstrueres ved hjelp av én av følgende to metoder for en bestemt tid enten i fortiden eller fremtiden : en < p> GregorianCalendar møtet = ny GregorianCalendar ( 2009 , 12, 14, 8 , 00 ), //08:00 den 14. desember , 2009GregorianCalendar meetingEnds = ny GregorianCalendar ( 2009 , 12, 14, 8 , 46, 23 ), //08:46:23 den 14. desember 2009
å bruke våre GregorianCalendar gjenstander , trenger vi å konvertere verdien til et Dato klasse. For eksempel : en
Dato meetingDate = meeting.getTime (); Dato meetingEndsDate = meetingEnds.getTime ();
Beregning medgått tid
< p > Beregne medgått tid fra to date objektene er da en enkel sak
lang ElapsedTime = meetingEndsDate.getTime ( ) - meetingDate.getTime (); .
p Dette vil gi oss den tiden som er gått i millisekunder , som kan konverteres til mer intuitive enheter med noen enkel aritmetikk .
hjelp DateFormat
p Det er en mer viktig verktøy i Java for håndtering av tid , og det er DateFormat klassen, som gir en rekke metoder for outputing dato gjenstander til strenger og for å lese strenger tilbake til datoer. . For eksempel : en
String meetingString = DateFormat.getDateInstance ( DateFormat.MEDIUM ) format ( meetingDate ) ;
Argumentet gitt til getDateInstance ( ) representerer stil brukes til å sende ut datoen. Noen gyldige formater inkluderer FULL , LANG , MEDIUM , og KORT . KORT vil skrive ut året , måned og dag helt i tall , mens FULL vil stave ut detaljer som tidssone for å gi så mye informasjon om dato som mulig.