Maison > développement back-end > Golang > Pourquoi la conversion manuelle de l'heure UTC en heure locale dans Go produit-elle souvent des résultats incorrects ?

Pourquoi la conversion manuelle de l'heure UTC en heure locale dans Go produit-elle souvent des résultats incorrects ?

Susan Sarandon
Libérer: 2024-12-22 14:15:13
original
480 Les gens l'ont consulté

Why Does Manually Converting UTC to Local Time in Go Often Produce Incorrect Results?

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)
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal