Construction de l'heure. Heure avec décalage de fuseau horaire
Lorsque vous travaillez avec des journaux, il est courant de rencontrer des horodatages avec des décalages de fuseau horaire. Pour analyser et représenter avec précision ces horodatages, il est crucial de comprendre comment créer un objet time.Time qui inclut le décalage de fuseau horaire.
Dans ce contexte, un décalage de fuseau horaire représente la différence entre l'heure locale et Temps universel coordonné (UTC). Un décalage positif indique que le fuseau horaire est en avance sur UTC, tandis qu'un décalage négatif indique qu'il est en retard sur UTC.
Utiliser time.FixedZone()
Une façon de construire un objet time.Time avec un décalage de fuseau horaire spécifique doit utiliser la fonction time.FixedZone(). Cette fonction crée une heure.Location avec un décalage fixe.
Par exemple :
loc := time.FixedZone("myzone", -8*3600) nativeDate := time.Date(2019, 2, 6, 0, 0, 0, 0, loc) fmt.Println(nativeDate)
Le code ci-dessus crée une heure.Location nommée "mazone" avec un décalage de -8 heures, représentant un fuseau horaire en retard de 8 heures sur UTC. La fonction time.Date() construit ensuite un time.Time avec l'année, le mois, le jour, l'heure, la minute, la seconde et le décalage horaire spécifiés.
Utilisation de time.Parse()
Si le décalage du fuseau horaire est disponible sous forme de chaîne, la fonction time.Parse() peut être utilisée pour créer un objet time.Time avec le décalage correct. Une chaîne de mise en page avec uniquement le décalage de zone de référence (-0700) doit être utilisée.
Par exemple :
t, err := time.Parse("-0700", "-0800") fmt.Println(t, err)
Le résultat de l'analyse du décalage de fuseau horaire « 0800 » crée une heure. Objet temporel avec un décalage de -8 heures. Cela permet une conversion facile d'une représentation sous forme de chaîne en un objet time.Time prenant en compte le fuseau horaire.
Exemple
En utilisant ces techniques, le problème initial de l'analyse d'un journal Apache L'horodatage avec un décalage de -0800 peut être résolu comme suit :
t, err := time.Parse("-0700", "-0800") if err != nil { panic(err) } nativeDate := time.Date(2019, 2, 6, 0, 0, 0, 0, t.Location()) fmt.Println(nativeDate)
Ce code crée correctement un objet time.Time avec la date spécifiée et -0800 décalage horaire.
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!