
"Szia Amigo. Szeretnék mesélni egy érdekes típusról, a dátumról. Ez a típus tárolja a dátumot és az időt, és időintervallumokat is tud mérni."
– Érdekesen hangzik. Kérem, folytassa.
"Minden dátum objektum egy időt egy meglehetősen érdekes formában tárol: ez az ezredmásodpercek száma 1970. január 1-je óta, GMT."
– Hűha!
"Igen. Ez a szám olyan nagy, hogy nincs elég hely neki az int- ben, ezért hosszú ideig kell tárolni . De nagyon praktikus bármely két dátum közötti különbség kiszámításához. Csak ki kell vonni, hogy megtalálja a különbséget ezredmásodperc pontossággal. Megoldja a dátumvonal és a nyári időszámítás problémáját is."
"A legérdekesebb az, hogy minden objektumot a létrehozáskor az aktuális idővel inicializálnak. Az aktuális idő megismeréséhez csak létre kell hoznia egy dátum objektumot."
– Hogyan dolgozol vele?
"Íme néhány példa:"
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);
}
"A getTime()
metódus a Date objektumban tárolt ezredmásodpercek számát adja vissza."
"A after()
metódus ellenőrzi, hogy a metódus meghívásának dátuma a metódusnak átadott dátum után van-e."
"A getHours(), getMinutes(), getSeconds()
metódusok az órák, percek és másodpercek számát adják vissza ahhoz az objektumhoz, amelyen meghívták őket."
"Sőt, az utolsó példában láthatja, hogy módosíthatja a dátum objektumban tárolt dátumot/időt. Megkapjuk az aktuális időt és dátumot, majd visszaállítjuk az órákat, perceket és másodperceket 0-ra. A januárt is beállítottuk hónap és 1 a hónap napja. Így az yearStartTime
objektum az aktuális év január 1-jei dátumot és a 00:00:00 időpontot tárolja."
"Ezt követően ismét megkapjuk az aktuális dátumot ( currentTime
), kiszámítjuk a két dátum közötti különbséget ezredmásodpercben, és eltároljuk a -ban msTimeDifference
."
"Ezután elosztjuk msTimeDifference
a 24 óra ezredmásodperceinek számát, hogy megkapjuk a teljes napok számát az aktuális év elejétől a mai napig."
"Hűha! Ez nagyon klassz!"
GO TO FULL VERSION