Heim > Java > javaLernprogramm > Wie kann ich die Dauer zwischen zwei Zeitpunkten in Java genau messen, auch wenn die Startzeit nach der Endzeit liegt?

Wie kann ich die Dauer zwischen zwei Zeitpunkten in Java genau messen, auch wenn die Startzeit nach der Endzeit liegt?

Mary-Kate Olsen
Freigeben: 2024-12-20 14:30:09
Original
631 Leute haben es durchsucht

How Can I Accurately Measure the Duration Between Two Time Points in Java, Even When the Start Time is After the End Time?

Messung der verstrichenen Zeit in Java

Frage:

Wie kann ich die Zeitspanne zwischen bestimmen zwei Zeitpunkte in Java? Konkret möchte ich startTime und endTime als Instanzvariablen in einer Klasse darstellen und deren Differenz in einer getDuration()-Methode berechnen. Allerdings gibt es eine Einschränkung: Ich muss Fälle behandeln, in denen startTime später als endTime liegt und dennoch ein genaues Ergebnis erhalte (z. B. startTime = 23:00, endTime = 1:00, Dauer = 2:00).

Antwort:

Um eine genaue Zeitmessung in Java zu erreichen, müssen Sie verwenden System.nanoTime(). Im Gegensatz zu System.currentTimeMillis() ist nanoTime speziell für die Messung der verstrichenen Zeit konzipiert.

Erklärung:

System.currentTimeMillis() stellt eine Wand bereit -Uhrzeit, die anfällig für Anpassungen und Korrekturen durch das System ist. Dies führt zu Inkonsistenzen bei der Messung der verstrichenen Zeit. Andererseits ist System.nanoTime() von diesen Korrekturen nicht betroffen und bietet eine präzise Messung von Zeitunterschieden, auch wenn startTime endTime überschreitet.

So implementieren Sie dies in Ihrer Klasse:

public class Stream {
    private long startTime;
    private long endTime;

    public long getDuration() {
        return endTime - startTime;
    }

    // ...
}
Nach dem Login kopieren

Durch die Verwendung von System.nanoTime() können Sie genaue Zeitdauerberechnungen erhalten, selbst wenn Sie Zeitintervalle verarbeiten, die sich über Mitternacht erstrecken oder bei denen die Startzeit nach der Endzeit liegt.

Das obige ist der detaillierte Inhalt vonWie kann ich die Dauer zwischen zwei Zeitpunkten in Java genau messen, auch wenn die Startzeit nach der Endzeit liegt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage