Maison >développement back-end >Golang >Comment construire une instance time.Time avec un décalage de fuseau horaire spécifique dans Go ?

Comment construire une instance time.Time avec un décalage de fuseau horaire spécifique dans Go ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-03 18:28:11700parcourir

How to Construct a time.Time Instance with a Specific Timezone Offset in Go?

Construire l'heure. Heure avec décalage de fuseau horaire

Dans le domaine du chronométrage, il est crucial de gérer les fuseaux horaires avec précision pour les applications sophistiquées. Cela implique de construire des instances time.Time qui intègrent des décalages de fuseau horaire spécifiques.

Prenons l'exemple d'une entrée de journal Apache :

[07/Mar/2004:16:47:46 -0800]

Après avoir analysé avec succès les composants individuels (année, mois, jour , heure, minute, seconde et fuseau horaire), l'étape suivante consiste à construire une instance time.Time qui intègre le fuseau horaire "-0800" offset.

Utilisation de time.FixedZone()

À cette fin, vous pouvez utiliser time.FixedZone(). Cette fonction vous permet de construire un time.Location avec un décalage fixe. Voici un exemple :

loc := time.FixedZone("myzone", -8*3600)
nativeDate := time.Date(2019, 2, 6, 0, 0, 0, 0, loc)
fmt.Println(nativeDate)

Sortie :

2019-02-06 00:00:00 -0800 myzone

Utilisation de time.Parse()

Si le Le décalage du fuseau horaire est disponible sous forme de chaîne, vous pouvez utiliser time.Parse() pour l'interpréter. Utilisez une chaîne de mise en page qui contient uniquement le décalage de la zone de référence :

t, err := time.Parse("-0700", "-0800")
fmt.Println(t, err)

Sortie :

0000-01-01 00:00:00 -0800 -0800 <nil>

Comme le montre la sortie, l'heure résultante.Le temps a un décalage de zone de -0800 heures.

Terminé Exemple

En incorporant les techniques ci-dessus, l'exemple original peut être réécrit 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)

Sortie :

2019-02-06 00:00:00 -0800 -0800

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