Comprendre le comportement d'analyse temporelle de Go
Lors de l'analyse d'une chaîne temporelle dans Go à l'aide de la fonction time.Parse(), il peut apparaître que le L'identifiant de fuseau horaire, tel que « EDT », n'est pas analysé. Cependant, ce n'est pas nécessairement le cas.
Traitement du fuseau horaire dans Parse()
Selon la documentation time.Parse(), si une abréviation de fuseau (par ex. , MST) est fourni dans la chaîne d'entrée, il tente d'utiliser le décalage associé à cette zone dans « l'emplacement actuel ». Si l'abréviation de la zone est inconnue, Parse() attribue l'heure à un emplacement fabriqué avec un décalage nul.
Exemple de scénario
Considérez l'exemple suivant, qui utilise " EDT" sans spécifier le fuseau horaire :
tn, _ := time.Parse("2006 01 02 15:04 MST", "2018 08 01 12:00 EDT")
Lorsqu'il est exécuté dans des emplacements où le fuseau horaire actuel a un décalage défini pour "EDT" (par exemple, CST), l'heure sera analysée correctement avec le décalage approprié. Cependant, dans les emplacements où « EDT » n'est pas défini (par exemple, CET), Parse() attribue l'emplacement fabriqué, ce qui entraîne un décalage zéro.
Approches alternatives
Pour éviter d'éventuels problèmes liés à l'analyse du fuseau horaire, envisagez les alternatives suivantes :
Conclusion
En comprenant le comportement par défaut de time.Parse() et en employant des stratégies appropriées, il est possible de garantir des et une analyse temporelle cohérente dans Go quel que soit le contexte du fuseau horaire.
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!