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
Mary-Kate Olsenoriginal
2024-11-27 13:59:10305parcourir

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"

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)

Cela affichera correctement :

2013-05-13 01:41:34.848 +0000 UTC

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!

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