Das Arbeiten mit Zeitstempeln ist in der Programmierung unerlässlich. Beim Umgang mit Unix-Zeitstempeln kann es beim Parsen des Zeitstempels mit time.Parse zu einem „Out of Range“-Fehler kommen. Dieser Artikel bietet eine Lösung zur Behebung dieses Problems in Go.
Der Versuch, einen Unix-Zeitstempel mithilfe der Funktion „time.Parse“ zu analysieren, kann aufgrund eines falschen Layouts zu einem Fehler führen. Dies kann verwirrend sein, da das Layout gemäß der Go-Dokumentation korrekt zu sein scheint.
Die Funktion time.Parse ist nicht für das Parsen von Unix-Zeitstempeln gedacht. Um Unix-Zeitstempel zu analysieren, können Sie die Funktion strconv.ParseInt verwenden, um den Zeichenfolgen-Zeitstempel in einen int64-Wert zu konvertieren und dann mit time.Unix einen time.Time-Wert zu erstellen.
Hier ist ein korrigiertes Codebeispiel, das zeigt, wie man ein Unix richtig analysiert Zeitstempel:
package main import ( "fmt" "time" "strconv" ) func main() { timestamp := "1405544146" i, err := strconv.ParseInt(timestamp, 10, 64) if err != nil { panic(err) } tm := time.Unix(i, 0) fmt.Println(tm) }
Die Funktion strconv.ParseInt übernimmt die Zeitstempelzeichenfolge, ihre Basis (in diesem Fall 10) und die Bitgröße (64, um große Zeitstempel zu verarbeiten). Es gibt eine int64-Darstellung des Zeitstempels zurück.
Die time.Unix-Funktion nimmt den int64-Wert und erstellt einen time.Time-Wert, der den Zeitstempel darstellt.
Der Code oben wird Folgendes ausgegeben:
2014-07-16 20:55:46 +0000 UTC
Durch die Verwendung strconv.ParseInt und time.Unix anstelle von time.Parse können Sie Unix-Zeitstempel in Go erfolgreich analysieren und den Fehler „Außerhalb des Bereichs“ vermeiden. Dieser Ansatz bietet eine unkomplizierte und zuverlässige Lösung für die Arbeit mit Zeitstempeln.
Das obige ist der detaillierte Inhalt vonWie vermeide ich „Out of Range'-Fehler beim Parsen von Unix-Zeitstempeln in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!