Heim >Java >javaLernprogramm >Wie kann ich Datums- und Zeitunterschiede in Java effizient berechnen?

Wie kann ich Datums- und Zeitunterschiede in Java effizient berechnen?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-18 14:15:10586Durchsuche

How Can I Efficiently Calculate Date and Time Differences in Java?

Berechnen von Datums-/Zeitunterschieden in Java

In Java ist es oft notwendig, die Differenz zwischen zwei Datums- oder Zeitangaben zu berechnen, um die verstrichene Zeit zu bestimmen Dauern. Dies kann mit verschiedenen Techniken erreicht werden, aber ein gängiger Ansatz besteht darin, Millisekunden zu manipulieren.

Eine Möglichkeit, Datums-/Uhrzeitdifferenzberechnungen durchzuführen, ist die Date-Klasse. Die Date-Klasse stellt einen bestimmten Zeitpunkt dar und stellt Methoden zum Konvertieren von Datumsangaben in und aus Millisekunden seit der Epoche bereit. Um die Differenz zwischen zwei Datumsangaben zu berechnen, können Sie einfach die Millisekunden, die das frühere Datum darstellt, von denen des späteren Datums subtrahieren.

Betrachten wir beispielsweise den folgenden Code:

String dateStart = "11/03/14 09:29:58";
String dateStop = "11/03/14 09:33:43";

SimpleDateFormat format = new SimpleDateFormat("yy/MM/dd HH:mm:ss");

Date d1 = null;
Date d2 = null;
try {
    d1 = format.parse(dateStart);
    d2 = format.parse(dateStop);
} catch (ParseException e) {
    e.printStackTrace();
}

// Get msec from each, and subtract.
long diff = d2.getTime() - d1.getTime();
long diffSeconds = diff / 1000;
long diffMinutes = diff / (60 * 1000);
long diffHours = diff / (60 * 60 * 1000);

System.out.println("Time in seconds: " + diffSeconds + " seconds.");
System.out.println("Time in minutes: " + diffMinutes + " minutes.");
System.out.println("Time in hours: " + diffHours + " hours.");

Dieser Code zeigt, wie die Differenz zwischen zwei Datumsangaben in Stunden, Minuten und Sekunden berechnet wird. Es gibt jedoch ein Problem mit dem angegebenen Code: Die Variable diffSeconds wird falsch berechnet. Der korrekte Weg, die Anzahl der Sekunden zu berechnen, erfolgt in Millisekunden, wie unten gezeigt:

long diffSeconds = TimeUnit.MILLISECONDS.toSeconds(diff);

Diese Änderung stellt sicher, dass der korrekte Zeitunterschied in Sekunden berechnet und angezeigt wird.

Das obige ist der detaillierte Inhalt vonWie kann ich Datums- und Zeitunterschiede in Java effizient berechnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn