Maison  >  Article  >  développement back-end  >  Pourquoi « time.Parse() » de Go échoue-t-il avec des abréviations de fuseau horaire ambiguës ?

Pourquoi « time.Parse() » de Go échoue-t-il avec des abréviations de fuseau horaire ambiguës ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-19 11:18:02287parcourir

Why Does Go's `time.Parse()` Fail with Ambiguous Timezone Abbreviations?

Time.Parse() ne peut pas traiter les informations de fuseau horaire en raison d'une abréviation ambiguë

La fonction time.Parse(), lors de la tentative d'interprétation des horodatages avec des abréviations de fuseau horaire (par exemple, "MST"), rencontre certaines limitations. Plus précisément, si le fuseau horaire abrégé n'est pas explicitement défini dans l'emplacement actuel ou s'il est ambigu (comme « IST », qui peut représenter plusieurs fuseaux horaires), la fonction suppose un emplacement de fabrication avec un décalage nul.

Ceci le comportement entraîne une divergence lors de l’analyse et de la comparaison des horodatages avec différentes abréviations de fuseau horaire. Par exemple, dans le code fourni :

t, err := time.Parse("2006-01-02 MST", "2018-05-11 IST")
t2, err := time.Parse("2006-01-02 MST", "2018-05-11 UTC")

Bien qu'ils représentent des instants temporels différents dans leurs fuseaux horaires respectifs, "2018-05-11 IST" et "2018-05-11 UTC" sont analysés par heure. Parse() comme ayant le même décalage zéro. Par conséquent, leurs horodatages Unix sont identiques, indiquant la même valeur horaire.

Pour surmonter ce problème, envisagez d'utiliser une disposition horaire avec un décalage de zone numérique, tel que "-0700" pour une différence de sept heures par rapport à UTC. . Vous pouvez également envisager d'utiliser time.ParseInLocation() avec une zone fixe construite manuellement ou de charger un emplacement de fuseau horaire spécifique (par exemple, « Asie/Kolkata » pour l'IST indien). Ces approches offrent un contrôle plus précis sur la gestion des fuseaux horaires et garantissent une analyse précise de l'heure.

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