Utiliser correctement les fuseaux horaires dans Go
Lorsque vous essayez d'analyser les codes de fuseau horaire, il est crucial de comprendre les nuances de la façon dont les fuseaux horaires sont gérés dans Go .
Le code que vous avez fourni configure une fonction appelée parseAndPrint qui prend une instance temporelle et un fuseau horaire abréviation comme arguments. Cependant, quel que soit le fuseau horaire que vous spécifiez, la sortie de la fonction est toujours "05:00:00 0000 UTC."
Le problème survient parce que vous analysez l'heure de votre emplacement actuel, qui peut différer de celle de votre emplacement actuel. le fuseau horaire souhaité. La fonction time.Parse de Go suppose que vous analysez à l'emplacement actuel, sauf indication explicite à l'aide d'un time.Location.
Pour analyser correctement une heure dans un fuseau horaire spécifique, vous devez suivre les étapes suivantes :
Voici un exemple de la façon dont vous pouvez utiliser ces étapes dans votre code :
func parseAndPrintWithLocation(now time.Time, timezone string) { location, err := time.LoadLocation(timezone) if err != nil { fmt.Println(err) return } test, err := time.ParseInLocation("15:04:05 MST", fmt.Sprintf("05:00:00", timezone), location) if err != nil { fmt.Println(err) return } test = time.Date( now.Year(), now.Month(), now.Day(), test.Hour(), test.Minute(), test.Second(), test.Nanosecond(), test.Location(), ) fmt.Println(test) }
En utilisant le bon approche avec les emplacements de fuseau horaire, vous pouvez vous assurer que l'heure analysée reflète le fuseau horaire souhaité, permettant à votre code de gérer avec précision les heures de différentes régions.
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!