Maison >développement back-end >Golang >Pourquoi « time.Parse » de Go ignore-t-il les informations de fuseau horaire ?
Pourquoi Time.Parse n'utilise pas les informations de fuseau horaire
La fonction time.Parse est conçue pour analyser une chaîne temporelle et générer une objet time.Value. Cependant, il ne prend pas en compte les informations de fuseau horaire. Ce comportement peut conduire à des résultats inattendus lors de l'analyse de chaînes horaires qui incluent des abréviations de fuseau horaire.
Considérez l'extrait de code suivant :
import "time" func main() { t, err := time.Parse("2006-01-02 MST", "2018-05-11 IST") if err != nil { return } t2, err := time.Parse("2006-01-02 MST", "2018-05-11 UTC") if err != nil { return } fmt.Println(t.Unix()) fmt.Println(t2.Unix()) }
Ce code analyse deux chaînes horaires, "2018-05-11 IST" et "2018-05-11 UTC", et imprime les horodatages Unix des valeurs temporelles résultantes. Cependant, le résultat est surprenant :
1525996800 1525996800
Les deux horodatages sont identiques, même si les chaînes horaires font référence à des fuseaux horaires différents. En effet, time.Parse ignore les informations de fuseau horaire lors de l'analyse d'une chaîne horaire. Il traite la chaîne horaire comme si elle se trouvait dans le fuseau horaire local et ne s'ajuste à aucun décalage horaire.
Pour résoudre ce problème, vous pouvez utiliser l'une des approches suivantes :
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!