
"Hej Amigo. Jag vill berätta om en intressant typ som heter Date. Den här typen lagrar datum och tid och kan även mäta tidsintervall."
"Låter intressant. Snälla fortsätt."
"Varje Date-objekt lagrar en tid i en ganska intressant form: antalet millisekunder sedan 1 januari 1970, GMT."
"Oj!"
"Ja. Det här talet är så stort att det inte finns tillräckligt med utrymme för det i en int , så det måste lagras i en lång . Men det är väldigt praktiskt för att beräkna skillnaden mellan två datum. Du subtrakterar bara för att hitta skillnaden med noggrannhet till millisekund. Det löser också problemet med datumlinjen och sommartid."
"Den mest intressanta delen är att varje objekt initialiseras med den aktuella tiden vid skapandet. För att veta den aktuella tiden behöver du bara skapa ett Date-objekt."
"Hur jobbar du med det?"
"Här är några exempel:"
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 returnerar antalet millisekunder lagrade i ett Date-objekt."
"Metoden after()
kontrollerar om datumet vi anropade metoden på kommer efter det datum som skickats till metoden."
"Metoderna getHours(), getMinutes(), getSeconds()
returnerar antalet timmar, minuter respektive sekunder för objektet som de anropades på."
"Dessutom, i det sista exemplet kan du se att du kan ändra datum/tid lagrad i ett Date- objekt. Vi får aktuell tid och datum och återställer sedan timmarna, minuterna och sekunderna till 0. Vi ställer också in januari som månad och 1 som dag i månaden. Objektet yearStartTime
lagrar alltså datumet 1 januari innevarande år och tiden 00:00:00."
"Efter det får vi återigen det aktuella datumet ( currentTime
), beräkna skillnaden mellan de två datumen i millisekunder och lagra det i . msTimeDifference
"
"Då dividerar vi msTimeDifference
med antalet millisekunder på 24 timmar för att få antalet hela dagar från början av innevarande år fram till idag."
"Wow! Det här är så coolt!"
GO TO FULL VERSION