Dans l'extrait de code Go fourni, la fonction parseAndPrint vise à analyser une heure spécifique et à l'afficher dans le fuseau horaire spécifié. Cependant, il renvoie toujours "[date] 05:00:00 0000 UTC" quel que soit le fuseau horaire choisi. Pour résoudre ce problème, une compréhension plus approfondie de l'analyse et de la conversion du fuseau horaire est essentielle.
Lors de l'analyse d'une valeur horaire, vous le faites généralement dans votre fuseau horaire local actuel. Cependant, les abréviations de fuseau horaire sont spécifiques à l'emplacement à partir duquel vous effectuez l'analyse. Si vous devez analyser les heures de différents fuseaux horaires, vous devez spécifier explicitement l'emplacement horaire ou le décalage horaire approprié.
Le problème dans le code fourni réside dans la ligne où l'heure du test est créée à l'aide de time.Date. Cette ligne définit le fuseau horaire de l'heure du test sur le fuseau horaire local du système, même si vous fournissez un paramètre de fuseau horaire lors de l'analyse de la chaîne d'entrée. Par conséquent, la conversion de l'heure du test en UTC entraîne toujours le même décalage que le fuseau horaire local.
Pour résoudre ce problème, vous devez créer l'heure du test en utilisant les informations de fuseau horaire fournies. Cela peut être fait en chargeant l'objet d'emplacement temporel correspondant à l'aide de time.LoadLocation, puis en analysant la chaîne d'entrée à cet emplacement à l'aide de time.ParseInLocation. L'heure résultante aura le décalage de fuseau horaire correct.
En fonction de vos besoins spécifiques, vous pouvez envisager des approches alternatives pour gérer les fuseaux horaires et les conversions :
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!