time.Parse-Verhalten
Beim Versuch, eine Zeichenfolge mithilfe der time.Parse-Funktion in Go in einen time.Time-Wert umzuwandeln, eins kann zu unerwarteten Ergebnissen führen, wenn die Zeitzone nicht korrekt angegeben ist. In diesem Artikel wird die Lösung für dieses Problem untersucht, indem die Zeitzonenformatierung an ISO 8601 angepasst wird.
Die Funktion time.Parse erfordert eine Layoutzeichenfolge, die das Format der Eingabezeichenfolge definiert. Die bereitgestellte Layoutzeichenfolge „2013-05-13T18:41:34.848Z“ stellt die von Golang verwendete Referenzzeit nicht genau dar, nämlich „Mon Jan 2 15:04:05 MST 2006“ in der Zeitzone UTC-0700.
Um dieses Problem zu beheben, müssen wir eine benutzerdefinierte Layoutzeichenfolge definieren, die der Referenzzeit entspricht. Es sollte die folgende Layoutzeichenfolge verwendet werden:
const longForm = "2006-01-02 15:04:05 -0700"
Diese Layoutzeichenfolge entspricht dem Format der Referenzzeit, wobei:
Wenn wir diese korrigierte Layoutzeichenfolge verwenden, kann die Funktion time.Parse die Eingabezeichenfolge erfolgreich in konvertieren ein Zeitwert:
t, err := time.Parse(longForm, "2013-05-13 18:41:34.848 -0700") if err != nil { log.Fatal(err) } fmt.Println(t)
Dies wird korrekt ausgegeben:
2013-05-13 01:41:34.848 +0000 UTC
Dies demonstriert den korrekten Umgang mit der Zeitzonenformatierung bei Verwendung von time.Parse in Go, um genaue Zeitkonvertierungen sicherzustellen. Durch Ausrichten der Layoutzeichenfolge an den Referenzzeit- und Zeitzonenspezifikationen können die erwarteten Ergebnisse erzielt werden.
Das obige ist der detaillierte Inhalt vonWie gehe ich mit Zeitzonen richtig um, wenn ich die time.Parse-Funktion von Go verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!