Java Tid Guider

Java-språket holder styr på tid helt i form av antall millisekunder som skiller et øyeblikk fra midnatt, januar 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 format av programmerer eller ved en av Javas standard dato og klokkeslett klasser.

Timing en blokk med kode

Den enkleste bruk av tid i Java er det som er nødvendig for å gang en blokk med kode. Bare ring System.currentTimeMillis () og lagre dette i en lang heltall før blokk med kode du ønsker til annen. For eksempel:

lang Starttime = System.currentTimeMillis ()

Og så, etter at kodeblokk er ferdig (eller under hvis du ønsker den skal representere forbrukt tid), ring System.currentTimeMillis () igjen og trekk fra Starttime fra det. For eksempel:

lang elapsedTime = System.currentTimeMillis () - Starttime

Hvis du ønsker en mer nøyaktig representasjon av tid enn millisekunder, kan du også erstatter currentTimeMillis () med nanoTime ().

Bruke Datoer og kalendere

Den currentTimeMillis og nanoTime funksjon eksponerer oss til det grunnleggende for å håndtere tid innenfor et program, men ikke med håndtering av tid i form av felles enheter som timer, dager og år. Heldigvis gir Java en gregoriansk kalender klasse for å bistå i arbeidet med mer intuitive tidsenheter. En gregoriansk kalender kan bygges uten en argumenter for å automatisk representere gjeldende klokkeslett. For eksempel:

Gregoriansk kalender currentTime = new gregoriansk kalender ()

Eller det kan konstrueres ved hjelp av én av følgende to metoder for en bestemt tid, enten i fortiden eller fremtiden:

Gregoriansk kalender møtet = ny gregoriansk kalender (2009, 12, 14, 8, 00); // 08:00 på 14 desember 2009
Gregoriansk kalender meetingEnds = ny gregoriansk kalender (2009, 12, 14, 8, 46, 23); // 08:46:23 på 14 desember 2009

For å bruke våre gregoriansk kalender gjenstander, vil vi trenger å konvertere verdien til en dato klasse. For eksempel:

Dato meetingDate = meeting.getTime ()

Dato meetingEndsDate = meetingEnds.getTime ();

Beregning av medgått tid

Beregning av medgått tid fra to dato gjenstander er da en enkel sak.

lang elapsedTime = meetingEndsDate.getTime () - meetingDate.getTime ()

Dette vil gi oss medgått tid i millisekunder, som kan omdannes til mer intuitive enheter med noen enkel aritmetikk.

Ved hjelp av dateformat

Det er en mer viktig verktøy i Java for å håndtere tid, og det er dateformat klassen, noe som gir en rekke metoder for outputing Dato objekter til strenger og for å lese strenger tilbake til datoer. For eksempel:

String meetingString = DateFormat.getDateInstance (DateFormat.MEDIUM) .format (meetingDate)

Argumentet gitt til getDateInstance () representerer stilen som brukes for å sende ut datoen. Noen gyldige formater inkluderer FULL, LONG, MEDIUM, og kort. KORT vil skrive ut året, måned og dag helt i tall, mens FULL vil stave ut detaljer som tidssonen for å gi så mye informasjon om dato som mulig.