Heim >Backend-Entwicklung >Golang >Wie kann ich Unix-Zeitstempel in Go sicher analysieren?

Wie kann ich Unix-Zeitstempel in Go sicher analysieren?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-17 00:49:25298Durchsuche

How to Safely Parse Unix Timestamps in Go?

So analysieren Sie Unix-Zeitstempel

Das Parsen von Unix-Zeitstempeln in Go mag wie eine einfache Aufgabe erscheinen, kann aber zu unerwarteten Fehlern führen. Wenn Sie versuchen, einen Zeitstempel mit time.Parse zu analysieren, kann es zu einem Fehler außerhalb des zulässigen Bereichs kommen, selbst wenn das Layout korrekt zu sein scheint.

Der Grund dafür ist, dass time.Parse keine Unix-Zeitstempel verarbeitet. Stattdessen sollten Sie die Funktion strconv.ParseInt verwenden, um die Zeitstempelzeichenfolge in einen int64-Wert zu konvertieren, und dann die Funktion time.Unix verwenden, um ein time.Time-Objekt zu erstellen.

Hier ist ein Beispiel:

package main

import (
    "fmt"
    "time"
    "strconv"
)

func main() {
    i, err := strconv.ParseInt("1405544146", 10, 64)
    if err != nil {
        panic(err)
    }
    tm := time.Unix(i, 0)
    fmt.Println(tm)
}

Dieser Code gibt den richtigen Zeitstempel aus:

2014-07-16 20:55:46 +0000 UTC

Wichtig Hinweis:

Im ursprünglichen Beispiel wurde strconv.Atoi anstelle von strconv.ParseInt verwendet. Allerdings kann strconv.Atoi auf 32-Bit-Systemen zu Ganzzahlüberläufen führen. Daher wird strconv.ParseInt empfohlen, um alle Fälle sicher zu behandeln.

Das obige ist der detaillierte Inhalt vonWie kann ich Unix-Zeitstempel in Go sicher analysieren?. 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