
„Hi, Amigo. Ich möchte dir von einem interessanten Typ namens Date erzählen. Dieser Typ speichert das Datum und die Uhrzeit und kann auch Zeitintervalle messen.“
„Klingt interessant. Bitte erzähl mir mehr.“
„Jedes Date-Objekt speichert eine Zeit in einem ziemlich interessanten Format: die Anzahl der Millisekunden seit dem 1. Januar 1970 GMT.“
„Oha!“
„Ja. Diese Zahl ist so groß, dass sie nicht genügend Platz in einem int hat, weshalb sie in einem long gespeichert werden muss. Aber sie ist wirklich praktisch, wenn man die Differenz zwischen zwei beliebigen Daten berechnen möchte. Man braucht lediglich eine Subtraktion, um den Unterschied mit millisekundengenauer Genauigkeit zu finden. Außerdem löst diese Vorgehensweise auch das Problem der Datumsgrenze und der Sommerzeit.“
„Doch das Interessanteste ist, dass jedes Objekt bei seiner Erstellung mit der aktuellen Uhrzeit initialisiert wird. Um die aktuelle Uhrzeit zu erfahren, musst du nur ein Date-Objekt erstellen.“
„Wie arbeitet man damit?“
„Hier ein paar Beispiele:“
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);
}
„Die getTime()
-Methode gibt die Anzahl der Millisekunden zurück, die in einem Date-Objekt gespeichert sind.“
„Die after()
-Methode prüft, ob das Datum, an dem wir die Methode aufgerufen haben, nach dem Datum liegt, das an die Methode übergeben wird.“
„Die Methoden getHours(), getMinutes(), getSeconds()
liefern die Anzahl der Stunden, Minuten und Sekunden für das Objekt, für das sie aufgerufen werden.“
„Außerdem siehst du im letzten Beispiel, dass du das in einem Date-Objekt gespeicherte Datum/die Uhrzeit ändern kannst. Wir rufen die aktuelle Uhrzeit und das aktuelle Datum ab und setzen dann die Stunden, Minuten und Sekunden auf 0 zurück. Wir legen zudem Januar als Monat und 1 als Tag des Monats fest. Somit speichert das yearStartTime
-Objekt das Datum des 1. Januar des aktuellen Jahres und die Uhrzeit 00:00:00 Uhr.“
„Danach rufen wir wieder das aktuelle Datum (currentTime
) ab, berechnen die Differenz zwischen den beiden Datumsangaben in Millisekunden und speichern sie in msTimeDifference
.“
„Dann dividieren wir msTimeDifference
durch die Anzahl der Millisekunden in 24 Stunden, um die Anzahl der ganzen Tage vom Beginn des laufenden Jahres bis heute zu erhalten.“
„Wow! Das ist echt cool!“
GO TO FULL VERSION