"Hei, Amigo. Jeg vil fortelle deg om en interessant type kalt Date. Denne typen lagrer dato og klokkeslett, og kan også måle tidsintervaller."
"Høres interessant ut. Vennligst fortsett."
"Hvert Date-objekt lagrer en tid i en ganske interessant form: antall millisekunder siden 1. januar 1970, GMT."
"Wow!"
"Ja. Dette tallet er så stort at det ikke er nok plass til det i en int , så det må lagres i en lang . Men det er veldig nyttig for å beregne forskjellen mellom to datoer. Du bare subtraksjoner for å finne forskjellen med nøyaktighet til millisekund. Det løser også problemet med datolinjen og sommertid."
"Den mest interessante delen er at hvert objekt initialiseres med gjeldende klokkeslett ved opprettelsen. For å vite gjeldende klokkeslett trenger du bare å lage et Dato-objekt."
"Hvordan jobber du med det?"
"Her er noen eksempler:"
public static void main(String[] args) throws Exception
{
Date today = new Date();
System.out.println("Current date: " + today);
}
public static void main(String[] args) throws Exception
{
Date currentTime = new Date(); // Get the current date and time
Thread.sleep(3000); // Wait 3 seconds (3000 milliseconds)
Date newTime = new Date(); // Get the new current time
long msDelay = newTime.getTime() - currentTime.getTime(); // Calculate the difference
System.out.println("Time difference is: " + msDelay + " in ms");
}
public static void main(String[] args) throws Exception
{
Date startTime = new Date();
long endTime = startTime.getTime() + 5000; // +5 seconds
Date endDate = new Date(endTime);
Thread.sleep(3000); // Wait 3 seconds
Date currentTime = new Date();
if(currentTime.after(endDate))// Check whether currentTime is after endDate
{
System.out.println("End time!");
}
}
public static void main(String[] args) throws Exception
{
Date currentTime = new Date();
int hours = currentTime.getHours();
int mins = currentTime.getMinutes();
int secs = currentTime.getSeconds();
System.out.println("Time since midnight " + hours + ":" + mins + ":" + secs);
}
public static void main(String[] args) throws Exception
{
Date yearStartTime = new Date();
yearStartTime.setHours(0);
yearStartTime.setMinutes(0);
yearStartTime.setSeconds(0);
yearStartTime.setDate(1); // First day of the month
yearStartTime.setMonth(0); // January (the months are indexed from 0 to 11)
Date currentTime = new Date();
long msTimeDifference = currentTime.getTime() - yearStartTime.getTime();
long msDay = 24 * 60 * 60 * 1000; // The number of milliseconds in 24 hours
int dayCount = (int) (msTimeDifference/msDay); // The number of full days
System.out.println("Days since the start of the year: " + dayCount);
}
" getTime()
Metoden returnerer antall millisekunder som er lagret i et Date-objekt."
" after()
Metoden sjekker om datoen vi kalte metoden på kommer etter datoen som ble sendt til metoden."
" getHours(), getMinutes(), getSeconds()
Metodene returnerer henholdsvis antall timer, minutter og sekunder for objektet de ble kalt på."
"I tillegg kan du i det siste eksemplet se at du kan endre dato/klokkeslett som er lagret i et Date- objekt. Vi får gjeldende klokkeslett og dato og tilbakestiller deretter timene, minuttene og sekunder til 0. Vi setter også januar som måned og 1 som dag i måneden. Dermed yearStartTime
lagrer objektet datoen 1. januar i inneværende år og klokkeslettet 00:00:00."
"Etter det får vi igjen gjeldende dato ( currentTime
), regner ut forskjellen mellom de to datoene i millisekunder og lagrer den i msTimeDifference
."
"Deretter deler vi msTimeDifference
på antall millisekunder i løpet av 24 timer for å få antall hele dager fra begynnelsen av inneværende år til i dag."
"Wow! Dette er så kult!"
GO TO FULL VERSION