Warum kann „time.Parse' in Go einen String nicht in eine „time.Time'-Instanz konvertieren, wenn es um die Zeitzone geht?

Mary-Kate Olsen
Freigeben: 2024-11-17 00:50:03
Original
120 Leute haben es durchsucht

Why does `time.Parse` in Go fail to convert a string to a `time.Time` instance when timezone is involved?

Verstehen des time.Parse-Verhaltens

Bei Verwendung der Parse-Methode im Time-Paket von Go zum Konvertieren einer Zeichenfolge in eine time.Time-Instanz ist dies der Fall Es ist wichtig, die Zeitzone zu berücksichtigen und eine entsprechende Formatzeichenfolge bereitzustellen. Der folgende Code kann aufgrund einer falschen Zeitzonenbehandlung eine Zeichenfolge nicht wie erwartet in eine Zeit umwandeln:

import (
    "fmt"
    "time"
)

func main() {
    const longForm = "2013-05-13T18:41:34.848Z"
    t, _ := time.Parse(longForm, "2013-05-13 18:41:34.848 -0700 PDT")
    fmt.Println(t)
}
Nach dem Login kopieren

Dieser Code gibt 0001-01-01 00:00:00 0000 UTC statt der erwarteten aus 13.05.2013 01:41:34.848 0000 UTC.

Lösung: Geben Sie die richtige Formatzeichenfolge an

Das fehlerhafte Verhalten wird durch eine falsche Formatzeichenfolge verursacht. Die longForm sollte so definiert werden, dass sie dem Format der Eingabezeichenfolge entspricht:

const longForm = "2006-01-02 15:04:05 -0700"
Nach dem Login kopieren

Diese Formatzeichenfolge entspricht dem Format der Eingabezeichenfolge: 2013-05-13 18:41:34.848 -0700 PDT.

Aktualisierter Code:

import (
    "fmt"
    "log"
    "time"
)

func main() {
    const longForm = "2006-01-02 15:04:05 -0700"
    t, err := time.Parse(longForm, "2013-05-13 18:41:34.848 -0700 PDT")
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println(t)
}
Nach dem Login kopieren

Mit Wenn Sie die richtige Formatzeichenfolge eingeben, gibt der Code nun die erwartete Zeit aus: 2013-05-13 01:41:34.848 0000 UTC.

Das obige ist der detaillierte Inhalt vonWarum kann „time.Parse' in Go einen String nicht in eine „time.Time'-Instanz konvertieren, wenn es um die Zeitzone geht?. 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