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
Libérer: 2024-12-03 18:28:11
original
696 Les gens l'ont consulté

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]
Copier après la connexion

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)
Copier après la connexion

Sortie :

2019-02-06 00:00:00 -0800 myzone
Copier après la connexion

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)
Copier après la connexion

Sortie :

0000-01-01 00:00:00 -0800 -0800 <nil>
Copier après la connexion

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)
Copier après la connexion

Sortie :

2019-02-06 00:00:00 -0800 -0800
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal