Maison > développement back-end > Golang > Comment gérer correctement les fuseaux horaires lors de l'utilisation de la fonction time.Parse de Go ?

Comment gérer correctement les fuseaux horaires lors de l'utilisation de la fonction time.Parse de Go ?

Mary-Kate Olsen
Libérer: 2024-11-27 13:59:10
original
351 Les gens l'ont consulté

How to Correctly Handle Timezones When Using Go's time.Parse Function?

time.Parse Behaviour

Lors de la tentative de conversion d'une chaîne en valeur time.Time à l'aide de la fonction time.Parse dans Go, un peut rencontrer des résultats inattendus si le fuseau horaire n’est pas spécifié correctement. Cet article explore la solution à ce problème en alignant le formatage du fuseau horaire sur la norme ISO 8601.

La fonction time.Parse nécessite une chaîne de mise en page qui définit le format de la chaîne d'entrée. La chaîne de mise en page fournie "2013-05-13T18:41:34.848Z" ne représente pas avec précision l'heure de référence utilisée par Golang, qui est "Mon Jan 2 15:04:05 MST 2006" dans le fuseau horaire UTC-0700.

Pour résoudre ce problème, nous devons définir une chaîne de mise en page personnalisée qui correspond à l'heure de référence. La chaîne de mise en page suivante doit être utilisée :

const longForm = "2006-01-02 15:04:05 -0700"
Copier après la connexion

Cette chaîne de mise en page correspond au format de l'heure de référence, où :

  • 2006-01-02 représente la date au format AAAA-MM-JJ
  • 15:04:05 représente l'heure au format HH:MM:SS
  • -0700 représente le décalage horaire de UTC-0700

Lorsque nous utilisons cette chaîne de mise en page corrigée, la fonction time.Parse peut convertir avec succès la chaîne d'entrée en une valeur time.Time :

t, err := time.Parse(longForm, "2013-05-13 18:41:34.848 -0700")
if err != nil {
  log.Fatal(err)
}
fmt.Println(t)
Copier après la connexion

Cela affichera correctement :

2013-05-13 01:41:34.848 +0000 UTC
Copier après la connexion

Cela démontre comment gérer correctement le formatage du fuseau horaire lors de l'utilisation de time.Parse in Go pour garantir des conversions d'heure précises. En alignant la chaîne de mise en page avec les spécifications d'heure et de fuseau horaire de référence, les résultats attendus peuvent être obtenus.

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