Heim > Backend-Entwicklung > Golang > Wie gelingt der lokale Start in den Tag in Go?

Wie gelingt der lokale Start in den Tag in Go?

Patricia Arquette
Freigeben: 2024-11-11 02:47:03
Original
570 Leute haben es durchsucht

 How to Get the Local Start of Day in Go?

Lokalisieren des Beginns eines lokalen Tages

Um ein lokales Tagesanfangszeitobjekt abzurufen, besteht ein gängiger Ansatz darin, das zu extrahieren Jahres-, Monats- und Tageskomponenten und rekonstruieren das Datum. Gibt es jedoch eine orthodoxere Funktion, die von der Standardbibliothek bereitgestellt wird?

Das folgende Snippet zeigt eine benutzerdefinierte Bod-Funktion, die diese Aufgabe ausführt:

func Bod(t time.Time) time.Time {
    year, month, day := t.Date()
    return time.Date(year, month, day, 0, 0, 0, 0, t.Location())
}
Nach dem Login kopieren

Während die Bod-Funktion das Lokal korrekt bestimmt Ab heute liefert die alternativ vorgeschlagene Truncate-Funktion ein anderes Ergebnis. Um dies zu untersuchen, betrachten Sie den folgenden Code:

chicago, err := time.LoadLocation("America/Chicago")
if err != nil {
    fmt.Println(err)
    return
}
now := time.Now().In(chicago)
fmt.Println(Bod(now))
fmt.Println(Truncate(now))
Nach dem Login kopieren

Dieser Code generiert die folgende Ausgabe:

2014-08-11 00:00:00 -0400 EDT
2014-08-11 20:00:00 -0400 EDT
Nach dem Login kopieren

Es wird deutlich, dass die Truncate-Methode auf UTC-Zeit arbeitet, während die Bod-Funktion Behält die Ortszeit (Chicago) bei. Darüber hinaus geht Truncate von einem konstanten 24-Stunden-Tag aus, was für Orte wie Chicago, an denen es Schwankungen in der Sommerzeit gibt, ungenau ist.

Das obige ist der detaillierte Inhalt vonWie gelingt der lokale Start in den Tag in Go?. 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