Heim > Artikel > Backend-Entwicklung > Warum gibt meine Go-Funktion „time.Parse' einen unerwarteten Zeitwert zurück?
Verstehen des time.Parse-Verhaltens in Go
Beim Versuch, Zeichenfolgen in time.Time-Werte in Go mithilfe der time.Parse-Methode umzuwandeln, Das Festlegen der richtigen Formatzeichenfolge ist entscheidend, um das erwartete Ergebnis zu erzielen.
Beachten Sie den folgenden Code Snippet:
package main import ( "fmt" "time" ) func main() { const longForm = "2013-05-13T18:41:34.848Z" //even this is not working //const longForm = "2013-05-13 18:41:34.848 -0700 PDT" t, _ := time.Parse(longForm, "2013-05-13 18:41:34.848 -0700 PDT") fmt.Println(t) }
Der Code versucht, eine Zeichenfolge im Format „2013-05-13 18:41:34.848 -0700 PDT“ mithilfe der longForm-Formatzeichenfolge zu analysieren. Die Ausgabe ist jedoch unerwartet: „0001-01-01 00:00:00 0000 UTC“.
Um dieses Verhalten zu verstehen, ist es wichtig zu beachten, dass die Standardreferenzzeit für die time.Parse-Methode „ Montag, 2. Januar 15:04:05 MST 2006“, was die Unix-Zeit 1136239445 darstellt. Dies bedeutet, dass die Formatzeichenfolge darstellen muss die Referenzzeit entsprechend.
Im angegebenen Code stellt die LongForm-Formatzeichenfolge die Referenzzeit fälschlicherweise als „2006-01-02 15:04:05 -0700“ dar. Diese Nichtübereinstimmung im Referenzzeitformat führt zu einer unerwarteten Ausgabe.
Um dieses Problem zu beheben, sollte die LongForm-Formatzeichenfolge so geändert werden, dass sie mit der Referenzzeit übereinstimmt:
package main 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") if err != nil { log.Fatal(err) } fmt.Println(t) }
Mit der richtigen LongForm Formatzeichenfolge konvertiert die Methode time.Parse die Zeichenfolge jetzt genau in einen time.Time-Wert: „2013-05-13 01:41:34.848 0000“. UTC".
Das obige ist der detaillierte Inhalt vonWarum gibt meine Go-Funktion „time.Parse' einen unerwarteten Zeitwert zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!