Maison > développement back-end > Golang > Comment analyser et gérer correctement les fuseaux horaires dans Go ?

Comment analyser et gérer correctement les fuseaux horaires dans Go ?

Patricia Arquette
Libérer: 2024-12-01 14:38:12
original
608 Les gens l'ont consulté

How to Correctly Parse and Handle Time Zones in Go?

Utiliser correctement les fuseaux horaires dans Go

Lorsque vous essayez d'analyser les codes de fuseau horaire, il est crucial de comprendre les nuances de la façon dont les fuseaux horaires sont gérés dans Go .

Le code que vous avez fourni configure une fonction appelée parseAndPrint qui prend une instance temporelle et un fuseau horaire abréviation comme arguments. Cependant, quel que soit le fuseau horaire que vous spécifiez, la sortie de la fonction est toujours "05:00:00 0000 UTC."

Le problème survient parce que vous analysez l'heure de votre emplacement actuel, qui peut différer de celle de votre emplacement actuel. le fuseau horaire souhaité. La fonction time.Parse de Go suppose que vous analysez à l'emplacement actuel, sauf indication explicite à l'aide d'un time.Location.

Pour analyser correctement une heure dans un fuseau horaire spécifique, vous devez suivre les étapes suivantes :

  1. Chargez l'emplacement du fuseau horaire souhaité en utilisant time.LoadLocation(timezoneAbbreviation).
  2. Analysez l'heure en utilisant time.ParseInLocation(localLocation, timeString, location), où localLocation est l'emplacement actuel, timeString est la chaîne d'heure (par exemple, "05:00:00") et location est l'emplacement du fuseau horaire que vous avez obtenu à l'étape 1.

Voici un exemple de la façon dont vous pouvez utiliser ces étapes dans votre code :

func parseAndPrintWithLocation(now time.Time, timezone string) {
    location, err := time.LoadLocation(timezone)
    if err != nil {
        fmt.Println(err)
        return
    }
    test, err := time.ParseInLocation("15:04:05 MST", fmt.Sprintf("05:00:00", timezone), location)
    if err != nil {
        fmt.Println(err)
        return
    }
    test = time.Date(
        now.Year(),
        now.Month(),
        now.Day(),
        test.Hour(),
        test.Minute(),
        test.Second(),
        test.Nanosecond(),
        test.Location(),
    )

    fmt.Println(test)
}
Copier après la connexion

En utilisant le bon approche avec les emplacements de fuseau horaire, vous pouvez vous assurer que l'heure analysée reflète le fuseau horaire souhaité, permettant à votre code de gérer avec précision les heures de différentes régions.

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