Maison >développement back-end >Golang >Comment convertir avec précision l'heure UTC en un fuseau horaire spécifique dans Go ?

Comment convertir avec précision l'heure UTC en un fuseau horaire spécifique dans Go ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-19 02:14:08289parcourir

How to Accurately Convert UTC Time to a Specific Time Zone in Go?

Conversion de l'heure UTC en un fuseau horaire spécifique en Go avec time.LoadLocation

Lors de la conversion de l'heure UTC en une heure locale spécifique, il est essentiel de prendre en compte informations sur le fuseau horaire pour plus de précision. Tenter d'ajouter manuellement des différences horaires peut entraîner des résultats incorrects.

Au lieu de cela, l'approche préférée dans Go consiste à utiliser time.LoadLocation pour obtenir les informations de fuseau horaire pour l'emplacement souhaité. Voici un exemple de code Go corrigé :

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, une carte (countryTz) est utilisée pour associer les noms de pays à leurs chaînes de fuseau horaire correspondantes. La fonction timeIn prend le nom du pays, charge les informations de fuseau horaire à l'aide de time.LoadLocation et renvoie l'heure actuelle dans ce fuseau horaire spécifique.

La fonction principale imprime ensuite l'heure UTC et les heures locales de la Hongrie et L'Égypte utilise timeIn. Cette approche garantit que les différences de fuseaux horaires et d'heure d'été sont gérées correctement.

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!

Déclaration:
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