Maison >développement back-end >Golang >Comment convertir une chaîne de décalage horaire en un objet Time.Location dans Go ?

Comment convertir une chaîne de décalage horaire en un objet Time.Location dans Go ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-14 19:29:13190parcourir

How to Convert a Time Offset String to a Time.Location Object in Go?

Conversion du décalage horaire en emplacement/fuseau horaire dans Go

Lorsque vous travaillez avec des fuseaux horaires et des décalages horaires, il est courant de rencontrer des scénarios dans lesquels vous devez convertir un décalage temporel brut, représenté sous forme de chaîne, en un objet de localisation utilisable dans Go. Ceci peut être réalisé sans effort en utilisant les méthodes fournies par le package time.

Supposons que vous ayez obtenu un décalage horaire arbitraire, tel que " 1100". Pour créer un objet time.Location représentant ce décalage, utilisez simplement la fonction FixedZone comme suit :

loc := time.FixedZone("UTC+11", +11*60*60)

Cette fonction crée un emplacement avec le nom et le décalage spécifiés en secondes.

Pour associer l'heure avec cet emplacement nouvellement créé, utilisez la méthode In :

t = t.In(loc)

Cette opération modifie l'heure t pour refléter l'emplacement spécifié et met à jour son décalage en conséquence.

Voici un exemple qui démontre la conversion et la sortie ultérieure de l'heure dans différents contextes :

package main

import (
    "fmt"
    "time"
)

func main() {
    loc := time.FixedZone("UTC+11", +11*60*60)
    t := time.Now()

    // Output the original time and location
    fmt.Println(t)      // Output: 2023-09-13 18:37:08.729331723 +0000 UTC
    fmt.Println(t.Location()) // Output: UTC

    // Apply the new location to the time
    t = t.In(loc)

    // Output the modified time and location
    fmt.Println(t)      // Output: 2023-09-14 05:37:08.729331723 +1100 UTC+11
    fmt.Println(t.Location()) // Output: UTC+11

    // Output the UTC equivalent of the modified time
    fmt.Println(t.UTC()) // Output: 2023-09-13 18:37:08.729331723 +0000 UTC
    fmt.Println(t.Location()) // Output: UTC+11
}

Ce code montre comment vous pouvez convertir un décalage temporel en un objet de localisation et appliquer à une heure pour obtenir des représentations précises par rapport aux différents fuseaux horaires.

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