Java håller reda på tiden helt i termer av antalet millisekunder som skiljer ett ögonblick från midnatt , 1 januari, 1970 UTC och lagrar detta värde som en lång ( 64 bit ) heltal . Detta gör det möjligt att stödja alla möjliga tider som faller inom 290 miljoner år av 1970 i endera riktningen. Den här gången är antingen omvandlas till ett mer användbart format av programmeraren eller av en av Javas standard datum och tid klasser . Timing ett kodblock
Den enklaste användningen av tiden i Java är vad som krävs för tid ett kodblock . Helt enkelt ringa System.currentTimeMillis ( ) och lagrar detta i ett långt heltal innan kodblock du vill tid . Till exempel :
lång startTime = System.currentTimeMillis ( ) ;
Och sedan , efter din kodblock finish ( eller under om du vill att det ska representera förfluten tid ) , ring System.currentTimeMillis ( ) igen och subtrahera startTime från det . Till exempel :
lång ElapsedTime = System.currentTimeMillis ( ) - startTime ,
p Om du önskar en mer korrekt bild av tiden än millisekunder , kan du också ersätter currentTimeMillis ( ) med nanoTime ( ) . Addera Använda datum och kalendrar
currentTimeMillis och nanoTime funktion exponerar oss till grunderna i att hantera tid inom ett program , men inte med att göra med tiden i form av gemensamma enheter som timmar, dagar och år . Lyckligtvis har Java en GregorianCalendar klass för att bistå i arbetet med mer intuitiv tidsenheter . En GregorianCalendar kan konstrueras utan ett argument för att automatiskt representera den aktuella tiden . Till exempel :
GregorianCalendar CurrentTime = ny GregorianCalendar ( ) ;
Eller det kan konstrueras med hjälp av någon av följande två metoder för en viss tid antingen i det förflutna eller framtiden :
GregorianCalendar möte = ny GregorianCalendar ( 2009 , 12 , 14 , 8 , 00 ) , //8:00 AM on December 14 2009GregorianCalendar meetingEnds = ny GregorianCalendar ( 2009 , 12 , 14 , 8 , 46 , 23 ) ; //08:46:23 den 14 december, 2009 Review
att använda våra GregorianCalendar objekt , kommer vi att behöva konvertera värdet till ett Date-klassen . Till exempel :
Datum meetingDate = meeting.getTime ( ) , Date meetingEndsDate = meetingEnds.getTime ( ) ; Addera ditt Beräkning Förfluten tid
Beräkning förfluten tid från två datum objekten är sedan en enkel sak
lång ElapsedTime = meetingEndsDate.getTime ( ) - meetingDate.getTime ( ) , .
Detta kommer att ge oss den förflutna tiden i millisekunder , som kan omvandlas till mer intuitiva enheter med några enkla aritmetik .
Använda DateFormat
p Det är ett viktigare verktyg i Java för att hantera tid , och det är DateFormat klass , vilket ger en mängd olika metoder för utmatning Date-objekt till strängar och för att läsa strängar tillbaka in datum . . Exempel :
String meetingString = DateFormat.getDateInstance ( DateFormat.MEDIUM ) format ( meetingDate ) ;
argument ges till getDateInstance ( ) representerar den stil som används för att mata in datumet. Några giltiga format inkluderar FULL , lång, medellång och korta. KORT kommer ut år, månad och dag helt i siffror , medan FULL kommer redogöra detaljer såsom tidszon för att ge så mycket information om dagen som möjligt .