Convertir l'heure UTC en heure locale dans Go : dépannage des résultats incorrects
Lors de la conversion de l'UTC en heure locale, il est important de prendre en compte les différences de fuseau horaire et la méthode correcte pour effectuer la conversion.
Dans l'extrait de code fourni, la tentative d'ajouter manuellement le décalage de fuseau horaire en tant que durée au L'heure UTC actuelle peut conduire à des résultats incorrects en raison de facteurs tels que l'heure d'été.
Cartographie des fuseaux horaires :
Le code s'appuie sur une carte statique pour stocker le fuseau horaire. compensations. Une approche plus fiable consiste à utiliser la fonction time.LoadLocation, qui charge dynamiquement les informations de fuseau horaire en fonction du nom spécifié. Cela garantit l'exactitude des différences de fuseau horaire.
Conversion de fuseau horaire intégrée :
Au lieu d'ajuster manuellement l'heure, il est recommandé d'utiliser la méthode time.In , qui convertit l'horodatage en un fuseau horaire spécifique. Cela prend en compte les paramètres actuels et les ajustements de l'heure d'été, fournissant des résultats plus précis.
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) }
En utilisant time.LoadLocation et time. En, ce code révisé garantit que l'heure locale est correctement convertie à partir de l'UTC, en tenant compte des différences de fuseau horaire et de l'heure d'été.
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!