Heim > Backend-Entwicklung > Golang > Wie vermeide ich „Out of Range'-Fehler beim Parsen von Unix-Zeitstempeln in Go?

Wie vermeide ich „Out of Range'-Fehler beim Parsen von Unix-Zeitstempeln in Go?

Mary-Kate Olsen
Freigeben: 2024-12-31 22:36:10
Original
1011 Leute haben es durchsucht

How to Avoid

Wie man mit Unix-Zeitstempeln in Go umgeht

Einführung

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.

Problembeschreibung

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.

Lösung

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.

Codebeispiel

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)
}
Nach dem Login kopieren

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.

Ergebnis

Der Code oben wird Folgendes ausgegeben:

2014-07-16 20:55:46 +0000 UTC
Nach dem Login kopieren

Schlussfolgerung

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!

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