Maison > développement back-end > Golang > Pourquoi l'ajout manuel du décalage UTC ne parvient-il pas à convertir avec précision l'UTC en heure locale en Go ?

Pourquoi l'ajout manuel du décalage UTC ne parvient-il pas à convertir avec précision l'UTC en heure locale en Go ?

Linda Hamilton
Libérer: 2024-12-26 06:25:11
original
151 Les gens l'ont consulté

Why Does Manually Adding UTC Offset Fail to Accurately Convert UTC to Local Time in Go?

Convertir l'heure UTC en heure locale en Go avec précision

Question :

Dans une tentative pour convertir l'heure UTC en heure locale pour des pays spécifiques, un programme Go rencontre des résultats incorrects malgré la prise en compte de la différence UTC. Quel pourrait être le problème sous-jacent ?

Réponse :

L'erreur se produit lorsque l'heure est calculée en ajoutant manuellement la différence UTC comme durée. Cette approche ne prend pas en compte d'autres facteurs, tels que l'heure d'été (DST).

Pour convertir avec précision l'heure UTC en heure locale, la méthode correcte consiste à utiliser time.LoadLocation. Voici comment procéder :

import "time"

// A map of country names to their time zone names
var countryTz = map[string]string{
    "Hungary": "Europe/Budapest",
    "Egypt":   "Africa/Cairo",
}

// Function to convert UTC time to the local time of a specific country
func timeIn(name string) time.Time {
    loc, err := time.LoadLocation(countryTz[name])
    if err != nil {
        panic(err)
    }
    return time.Now().In(loc)
}

// Example usage
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

Ce code définit d'abord un mappage des noms de pays avec leurs noms de fuseau horaire correspondants. Ensuite, time.LoadLocation est utilisé pour obtenir le fuseau horaire spécifique d’un pays donné. En appelant time.Now().In(loc), l'heure UTC actuelle est convertie en heure locale du pays souhaité, en tenant compte de l'heure d'été et d'autres facteurs.

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