Go's Time.Parse() analysiert keine Zeitzonenkennungen
Im bereitgestellten Code wird die Funktion time.Parse() verwendet Analysieren Sie eine Zeichenfolge in ein time.Time-Objekt. Die Funktion analysiert jedoch nicht die Zeitzonenkennung in der Zeichenfolge, was zu einem Zeitobjekt führt, das nicht genau ist.
Laut der Dokumentation zu time.Parse() besteht das Standardverhalten der Funktion darin, die zu verwenden Die Zeitzone des aktuellen Standorts, wenn eine Zonenabkürzung wie MST angezeigt wird. Dies erklärt, warum die erste und dritte Zeile in der Ausgabe falsch sind, da der aktuelle Standort auf CST eingestellt ist. Konkret wird die Zeichenfolge „EDT“ als „Eastern Daylight Time“ interpretiert und der Zeitzonenversatz für CST verwendet, der -0500 beträgt.
Um dieses Problem zu vermeiden und Zeitzonenkennungen korrekt zu analysieren, wird time.ParseInLocation ()-Funktion kann verwendet werden. Für diese Funktion müssen Sie den Speicherort angeben, der beim Parsen der Zeitzeichenfolge verwendet werden soll. In diesem Fall könnte der Standort „Amerika/New_York“ verwendet werden, um die Zeitzonenkennung „EDT“ korrekt zu analysieren.
Alternativ kann eine Layoutzeichenfolge in time.Parse() geändert werden, um den Offset in explizit anzugeben die Layoutzeichenfolge selbst, wie zum Beispiel:
format := "2006 01 02 15:04 -0400 MST" tn, _ := time.Parse(format, date)
Durch die Verwendung einer dieser Methoden wird sichergestellt, dass time.Parse() Zeitzonenkennungen genau analysiert und erstellt ein time.Time-Objekt mit dem richtigen Offset.
Das obige ist der detaillierte Inhalt vonWarum kann „time.Parse()' von Go Zeitzonenkennungen nicht genau analysieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!