Conversion d'un décalage horaire en un emplacement/fuseau horaire dans Go
Lorsque vous travaillez avec des données sensibles au temps, il est souvent nécessaire de convertir une heure décalé dans un objet time.Location utilisable. Cela permet une représentation et une manipulation précises des valeurs temporelles par rapport à des fuseaux horaires spécifiques.
Par exemple, considérons l'extrait de code suivant :
func main() { offset := "+1100" t, err := time.Parse("15:04 GMT-0700","15:06 GMT"+offset) if err != nil { fmt.Println("fail", err) } fmt.Println(t) fmt.Println(t.UTC()) fmt.Println(t.Location()) }
Alors que ce code analyse la valeur temporelle avec l'heure spécifiée offset, l'appel de t.Location() ne renvoie ensuite aucune information significative.
Pour résoudre ce problème, nous devons créer manuellement un objet time.Location qui représente l'heure souhaitée compenser. Ceci peut être réalisé en utilisant la fonction time.FixedZone :
loc := time.FixedZone("UTC+11", +11*60*60)
La variable loc est un objet time.Location qui représente le fuseau horaire UTC 11. Nous pouvons ensuite définir notre variable t pour qu'elle soit à cet emplacement :
t = t.In(loc)
Ce faisant, nous nous assurons que le décalage GMT est enregistré et que nous pouvons afficher l'heure par rapport au décalage horaire réel de l'utilisateur final. .
Voici un exemple :
package main import ( "fmt" "time" ) func main() { loc := time.FixedZone("UTC+11", +11*60*60) t := time.Now() fmt.Println(t) fmt.Println(t.Location()) t = t.In(loc) fmt.Println(t) fmt.Println(t.Location()) fmt.Println(t.UTC()) fmt.Println(t.Location()) }
Ce code génère le suivant :
2009-11-10 23:00:00 +0000 UTC m=+0.000000001 UTC 2009-11-11 10:00:00 +1100 UTC+11 UTC+11 2009-11-10 23:00:00 +0000 UTC UTC+11
Comme vous pouvez le voir, l'heure t est maintenant dans le fuseau horaire UTC 11 et sa Location() renvoie les informations appropriées. Cela permet des opérations et des calculs précis basés sur le temps.
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!