Maison >développement back-end >Golang >Pourquoi « time.Parse » de Go n'utilise-t-il pas correctement les informations de fuseau horaire ?
Time.Parse n'utilise pas les informations de fuseau horaire
Q : Pourquoi time.Parse n'utilise-t-il pas les informations de fuseau horaire ? Il doit produire des valeurs horaires distinctes pour différents fuseaux horaires.
Dans l'exemple de code fourni, la fonction time.Parse est utilisée pour analyser deux horodatages, "2018-05-11 IST" et "2018-05". -11 UTC", en utilisant la disposition "2006-01-02 MST". Cependant, le résultat montre que les deux horodatages donnent la même heure Unix :
Output: 1525996800 1525996800
Cela n'a pas de sens car IST et UTC ont des décalages horaires différents.
R : Abréviations de fuseau horaire ambiguës et décalage zéro
La racine de ce problème réside dans la gestion des abréviations de fuseau horaire ambiguës dans le temps.analyser. Plus précisément, en l'absence de décalage connu pour l'abréviation de fuseau horaire donnée, time.Parse suppose un fuseau horaire avec la même abréviation et un décalage nul.
Dans l'exemple fourni, "IST" est une abréviation ambiguë qui pourrait faire référence à plusieurs fuseaux horaires (Inde, Irlande, Israël, etc.). Par conséquent, time.Parse l'interprète comme un fuseau horaire fabriqué avec un décalage de zéro, ignorant ainsi le décalage horaire réel entre IST et UTC.
Solution : utilisation de décalages horaires numériques ou Time.ParseInLocation()
Pour résoudre ce problème, il existe plusieurs options disponible :
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!