La conversion de l'heure UTC en heure locale peut être un défi, surtout si l'on considère l'heure variations de zones. Dans Go, certains utilisateurs ont rencontré des résultats incorrects en tentant d'ajouter des durées de décalage horaire UTC à l'heure actuelle.
Le problème réside dans la gestion des fuseaux horaires. Bien que l'ajout de la durée du décalage horaire puisse ajuster la valeur temporelle, cela ne tient pas compte des règles du fuseau horaire spécifique et des changements d'heure d'été. Pour convertir avec précision l'heure UTC en heure locale, la bonne méthode consiste à utiliser la fonction time.LoadLocation.
Le code suivant montre comment utiliser time.LoadLocation pour obtenir l'heure locale dans un lieu spécifique. locations :
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) }
Dans cet exemple, countryTz définit une carte des pays et leurs noms de fuseau horaire correspondants. La fonction timeIn charge le fuseau horaire approprié et convertit l'heure actuelle en heure locale dans ce fuseau horaire.
En utilisant time.LoadLocation, le code garantit que les règles de fuseau horaire et les ajustements d'heure d'été sont pris en compte, fournissant heures locales précises.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!