Die Umrechnung von UTC-Zeit in Ortszeit kann eine Herausforderung sein, insbesondere wenn man die Zeit berücksichtigt Zonenvariationen. In Go sind bei einigen Benutzern falsche Ergebnisse aufgetreten, als sie versuchten, UTC-Zeitversatzdauern zur aktuellen Zeit hinzuzufügen.
Das Problem liegt in der Handhabung von Zeitzonen. Das Hinzufügen der Zeitversatzdauer kann zwar den Zeitwert anpassen, berücksichtigt jedoch nicht die Regeln der jeweiligen Zeitzone und DST-Änderungen (Sommerzeit). Um UTC genau in Ortszeit umzuwandeln, verwenden Sie am besten die Funktion time.LoadLocation.
Der folgende Code zeigt, wie Sie time.LoadLocation verwenden, um konkret die Ortszeit zu erhalten Standorte:
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) }
In diesem Beispiel definiert „countryTz“ eine Karte mit Ländern und den entsprechenden Zeitzonennamen. Die timeIn-Funktion lädt die entsprechende Zeitzone und konvertiert die aktuelle Zeit in die Ortszeit in dieser Zeitzone.
Durch die Verwendung von time.LoadLocation stellt der Code sicher, dass Zeitzonenregeln und Sommerzeitanpassungen berücksichtigt werden genaue Ortszeiten.
Das obige ist der detaillierte Inhalt vonWie konvertiert man UTC in Go genau in Ortszeit?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!