Heim >Backend-Entwicklung >Golang >Warum interpretiert „time.Parse' von Go Zeitzonenkennungen wie „EDT' falsch?

Warum interpretiert „time.Parse' von Go Zeitzonenkennungen wie „EDT' falsch?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-25 14:53:12240Durchsuche

Why Does Go's `time.Parse` Misinterpret Timezone Identifiers Like

Warum analysiert die Time.Parse-Funktion von Go den Zeitzonenbezeichner nicht?

Beim Parsen einer Zeitzeichenfolge mit der time.Parse-Funktion von Go Zeitzonenkennungen wie „MST“ werden basierend auf der Einstellung „aktueller Standort“ interpretiert. Wenn der aktuelle Standort die Abkürzung nicht erkennt, wird die Zeit als an einem erfundenen Standort mit Nullpunktverschiebung aufgezeichnet.

Zur Veranschaulichung veranschaulicht das folgende Codefragment das Problem:

date := "2018 08 01 12:00 EDT"
tn, _ := time.Parse(format, date)

fmt.Println(tn) // Print +0000 despite EDT indicating a -0400 offset

Dieser Code analysiert die Datumszeichenfolge im Format „2006 01 02 15:04 MST“ mithilfe der Funktion „time.Parse“ und gibt dann das Ergebnis aus Zeitobjekt. Es wird jedoch „0000“ anstelle des erwarteten „-0400“ ausgegeben, da der von der Funktion verwendete aktuelle Speicherort die Abkürzung „EDT“ nicht erkennt.

Um dieses Problem zu vermeiden, können Sie alternative Methoden zum Parsen verwenden Zeitzeichenfolgen:

  • Geben Sie einen numerischen Zonenversatz an:Parsen Sie mit einem Layout, das Enthält den numerischen Zonenoffset, z. B. 2006 01 02 15:04 -0400.
  • Verwenden Sie ParseInLocation: Geben Sie den Ort explizit mit time.LoadLocation an, z. B. time.ParseInLocation(format, date , time.LoadLocation("America/New_York")).

Durch die Nutzung dieser Methoden können Sie Zeitzeichenfolgen mit Zonenabkürzungen genau analysieren und so die korrekte Interpretation der Zeitzoneninformationen sicherstellen.

Das obige ist der detaillierte Inhalt vonWarum interpretiert „time.Parse' von Go Zeitzonenkennungen wie „EDT' falsch?. 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