Maison > développement back-end > Golang > Pourquoi mon analyse de fuseau horaire Go renvoie-t-elle toujours UTC ?

Pourquoi mon analyse de fuseau horaire Go renvoie-t-elle toujours UTC ?

Linda Hamilton
Libérer: 2024-12-01 01:23:14
original
729 Les gens l'ont consulté

Why Does My Go Timezone Parsing Always Return UTC?

Comprendre l'analyse des fuseaux horaires dans Go

Dans Go, la gestion des fuseaux horaires peut parfois conduire à un comportement inattendu. Examinons un problème courant rencontré lors de l'analyse des fuseaux horaires à l'aide de formats d'heure personnalisés.

Problème : sortie de fuseau horaire cohérente quelle que soit l'entrée

L'extrait de code fourni définit une fonction parseAndPrint qui vise à analyser une heure représentée. comme "05:00:00" dans un fuseau horaire spécifique, puis imprimez le résultat en UTC. Cependant, l'heure résultante reste inchangée, quel que soit le fuseau horaire spécifié, affichant à chaque fois "[date] 05:00:00 0000 UTC".

Comprendre le problème

La cause profonde réside dans comment l'heure est analysée à l'aide de time.Parse dans la fonction parseAndPrint. L'heure actuelle est récupérée avec time.Now() et passée comme argument à time.Parse, qui interprète la chaîne d'entrée en fonction de l'abréviation de fuseau horaire spécifiée.

Cependant, l'analyse est effectuée dans le fuseau horaire local du système. , pas le fuseau horaire souhaité spécifié. Cet écart entraîne une analyse incorrecte et une sortie cohérente en UTC, quel que soit le fuseau horaire prévu.

Solution : gestion correcte du fuseau horaire

Pour gérer correctement les fuseaux horaires, il est crucial d'analyser la représentation sous forme de chaîne du heure dans le fuseau horaire spécifié en utilisant une instance time.Location correcte. Cela implique les étapes suivantes :

  • Chargez le fuseau horaire souhaité à partir de la base de données de fuseaux horaires à l'aide de time.LoadLocation.
  • Créez un objet time.Time pour ce fuseau horaire à l'aide de time.ParseInLocation.
  • Convertissez l'heure en UTC à l'aide de test.UTC().

En incorporant ceci approche, le code analyserait et imprimerait correctement l'heure fournie dans le fuseau horaire souhaité, en tenant compte des différences horaires entre les fuseaux horaires.

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