Heim >Backend-Entwicklung >Golang >Wie kann ich Zeitunterschiede zwischen zwei time.Time-Objekten in Go effizient berechnen und formatieren?

Wie kann ich Zeitunterschiede zwischen zwei time.Time-Objekten in Go effizient berechnen und formatieren?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-09 02:45:11308Durchsuche

How Can I Efficiently Calculate and Format Time Differences Between Two time.Time Objects in Go?

Berechnen von Zeitunterschieden mit Time.Time-Objekten

In Golang können Zeitunterschiede zwischen zwei time.Time-Objekten einfach mithilfe von Time ermittelt werden .Sub()-Funktion. Das Ergebnis dieser Operation ist ein time.Duration-Wert.

Standardmäßig wird die Dauer intelligent formatiert, wie im folgenden Beispiel zu sehen ist:

import (
    "fmt"
    "time"
)

func main() {
    t1 := time.Now()
    t2 := t1.Add(time.Second * 341)

    fmt.Println(t1)
    fmt.Println(t2)
    diff := t2.Sub(t1)

    fmt.Println(diff)
}

Ausgabe:

2009-11-10 23:00:00 +0000 UTC
2009-11-10 23:05:41 +0000 UTC
5m41s

Für Dauern, die kürzer als ein Tag sind, können Sie den Time.Time-Objektkonstruktor und die Time.Format()-Methode verwenden, um HH:mm:ss zu erhalten Format:

out := time.Time{}.Add(diff)
fmt.Println(out.Format("15:04:05"))

Ausgabe:

00:05:41

Beachten Sie, dass diese Methode nur für Zeitunterschiede innerhalb von 24 Stunden gilt. Bei größeren Unterschieden müssen Sie möglicherweise komplexere Lösungen in Betracht ziehen, wie in diesem verwandten Thread besprochen:

[golang time.Since() mit Monaten und Jahren](https://github.com/golang/go /issues/17461)

Das obige ist der detaillierte Inhalt vonWie kann ich Zeitunterschiede zwischen zwei time.Time-Objekten in Go effizient berechnen und formatieren?. 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