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.
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".
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.
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 :
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!