Unix-Zeitstempel in Go analysieren
Beim Versuch, einen Unix-Zeitstempel mithilfe der time.Parse-Funktion in ein time.Time-Objekt zu analysieren, Entwickler Möglicherweise tritt der Fehler „Außerhalb des Bereichs“ auf. Dieser Fehler kann verwirrend sein, insbesondere wenn das bereitgestellte Layout gemäß der Go-Dokumentation korrekt erscheint.
Um die Ursache dieses Fehlers zu verstehen, ist es wichtig zu beachten, dass time.Parse nicht für die Verarbeitung von Unix-Zeitstempeln ausgelegt ist. Stattdessen ist es auf das Parsen von Zeichenfolgen spezialisiert, die Zeitwerte in einem bestimmten Format darstellen.
Richtiger Ansatz:
Zum Parsen von Unix-Zeitstempeln wird empfohlen, die Funktion strconv.ParseInt zu verwenden um die Zeitstempelzeichenfolge in eine Ganzzahldarstellung (int64) umzuwandeln. Diese Ganzzahl kann dann mit der Funktion time.Unix verwendet werden, um ein time.Time-Objekt zu erstellen, das den angegebenen Zeitstempel darstellt.
package main import ( "fmt" "time" "strconv" ) func main() { unixTimestamp, err := strconv.ParseInt("1405544146", 10, 64) if err != nil { panic(err) } timestamp := time.Unix(unixTimestamp, 0) fmt.Println(timestamp) }
Dieser Code analysiert die Unix-Zeitstempelzeichenfolge korrekt und erstellt ein entsprechendes time.Time-Objekt , die für weitere Vorgänge oder Speicherung verwendet werden kann.
Zusätzliche Hinweise:
Um potenzielle Ganzzahlen zu vermeiden Wenn es auf 32-Bit-Systemen zu Überläufen kommt, wird empfohlen, strconv.ParseInt anstelle von strconv.Atoi zum Parsen von Unix-Zeitstempeln zu verwenden. Die Funktion strconv.ParseInt unterstützt einen größeren Bereich ganzzahliger Werte und gewährleistet so die systemübergreifende Kompatibilität.
Das obige ist der detaillierte Inhalt vonWie analysiert man Unix-Zeitstempel in Go richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!