UTC in Ortszeit in Go umrechnen: Fehlerbehebung bei falschen Ergebnissen
Beim Umrechnen von UTC in Ortszeit ist es wichtig, Zeitzonenunterschiede zu berücksichtigen die richtige Methode zum Durchführen der Konvertierung.
Im bereitgestellten Code-Snippet der Versuch, den Zeitzonen-Offset manuell hinzuzufügen als Eine Dauer bis zur aktuellen UTC-Zeit kann aufgrund von Faktoren wie der Sommerzeit zu falschen Ergebnissen führen.
Zeitzonenzuordnung:
Der Code basiert auf einer statischen Karte um Zeitzonenversätze zu speichern. Ein zuverlässigerer Ansatz besteht darin, die Funktion time.LoadLocation zu verwenden, die Zeitzoneninformationen basierend auf dem angegebenen Namen dynamisch lädt. Dies gewährleistet die Genauigkeit von Zeitzonenunterschieden.
Integrierte Zeitzonenkonvertierung:
Anstatt die Zeit manuell anzupassen, wird empfohlen, die time.In-Methode zu verwenden , wodurch der Zeitstempel in eine bestimmte Zeitzone konvertiert wird. Dies berücksichtigt die aktuellen Einstellungen und Sommerzeitanpassungen und liefert genauere Ergebnisse.
Code示例:
var countryTz = map[string]string{ "Hungary": "Europe/Budapest", "Egypt": "Africa/Cairo", } func timeIn(name string) time.Time { loc, err := time.LoadLocation(countryTz[name]) if err != nil { panic(err) } return time.Now().In(loc) } func main() { utc := time.Now().UTC().Format("15:04") hun := timeIn("Hungary").Format("15:04") eg := timeIn("Egypt").Format("15:04") fmt.Println(utc, hun, eg) }
Durch die Verwendung von time.LoadLocation und time. Dieser überarbeitete Code stellt sicher, dass die Ortszeit unter Berücksichtigung von Zeitzonenunterschieden und Sommerzeit korrekt von UTC umgerechnet wird.
Das obige ist der detaillierte Inhalt vonWarum führt die manuelle Konvertierung von UTC in Ortszeit in Go oft zu falschen Ergebnissen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!