Maison >développement back-end >Golang >Comment gérer correctement les fuseaux horaires lors de l'utilisation de la fonction time.Parse de Go ?
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ù :
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!