Maison >développement back-end >Golang >Pourquoi « time.Parse() » de Go ne parvient-il pas à analyser avec précision les identifiants de fuseau horaire ?

Pourquoi « time.Parse() » de Go ne parvient-il pas à analyser avec précision les identifiants de fuseau horaire ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-01 06:33:141070parcourir

Why Does Go's `time.Parse()` Fail to Parse Timezone Identifiers Accurately?

Time.Parse() de Go n'analyse pas les identifiants de fuseau horaire

Dans le code fourni, la fonction time.Parse() est utilisée pour analyser une chaîne dans un objet time.Time. Cependant, la fonction n'analyse pas l'identifiant de fuseau horaire dans la chaîne, ce qui entraîne un objet temporel qui n'est pas précis.

Selon la documentation time.Parse(), le comportement par défaut de la fonction est d'utiliser le le fuseau horaire de l'emplacement actuel lorsque vous rencontrez une abréviation de zone comme MST. Cela explique pourquoi les première et troisième lignes de la sortie sont incorrectes car l'emplacement actuel est défini sur CST. Plus précisément, la chaîne « EDT » est interprétée comme « Eastern Daylight Time » et le décalage horaire pour CST est utilisé, qui est -0500.

Pour éviter ce problème et analyser correctement les identifiants de fuseau horaire, le time.ParseInLocation () peut être utilisée. Cette fonction vous oblige à spécifier l'emplacement à utiliser lors de l'analyse de la chaîne temporelle. Dans ce cas, l'emplacement « Amérique/New_York » pourrait être utilisé pour analyser correctement l'identifiant de fuseau horaire « EDT ».

Alternativement, une chaîne de mise en page dans time.Parse() peut être modifiée pour spécifier explicitement le décalage dans la chaîne de mise en page elle-même, telle que :

format := "2006 01 02 15:04 -0400 MST"
tn, _ := time.Parse(format, date)

L'utilisation de l'une de ces méthodes garantira que time.Parse() analyse avec précision les identifiants de fuseau horaire et crée un objet time.Time avec le décalage correct.

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