Maison > développement back-end > Golang > Comment analyser une chaîne horaire avec un fuseau horaire spécifique dans Go ?

Comment analyser une chaîne horaire avec un fuseau horaire spécifique dans Go ?

Barbara Streisand
Libérer: 2024-10-24 18:03:02
original
674 Les gens l'ont consulté

How to Parse a Time String with a Specific Time Zone in Go?

Analyse de l'heure avec un fuseau horaire spécifique

Vous pouvez utiliser time.ParseTime() pour obtenir une structure temporelle à partir d'une chaîne. Il prend une chaîne de présentation comme argument, qui spécifie le format de la chaîne d'entrée. La chaîne de mise en page doit correspondre exactement au format de la chaîne d'entrée.

Si vous devez analyser une chaîne horaire qui inclut un fuseau horaire, vous pouvez utiliser time.ParseInLocation(). Cette fonction prend une chaîne de mise en page et un emplacement comme arguments. L'emplacement peut être une valeur time.Location ou une chaîne représentant un nom de fuseau horaire.

Par exemple, le code suivant analyse une chaîne d'heure qui inclut un fuseau horaire :

<code class="go">import (
    "fmt"
    "time"
)

func main() {
    const layout = "2006-01-02 15:04"
    const timeStr = "2012-07-09 05:02:00 +0000 CEST"

    t, err := time.ParseInLocation(layout, timeStr, time.Local)
    if err != nil {
        fmt.Println(err)
        return
    }

    fmt.Println(t)
}</code>
Copier après la connexion

Ceci Le code affichera le résultat suivant :

2012-07-09 05:02:00 +0000 CEST
Copier après la connexion

La fonction time.ParseInLocation() analysera la chaîne de temps en fonction de la chaîne de mise en page et de l'emplacement spécifié. Dans ce cas, la chaîne de mise en page est "2006-01-02 15:04" et l'emplacement est "CEST". La fonction time.ParseInLocation() renverra une valeur time.Time qui représente l'heure analysée.

Si vous ne spécifiez pas d'emplacement, la fonction time.ParseInLocation() utilisera le fuseau horaire local. Cela signifie que l'heure analysée sera convertie dans le fuseau horaire local.

Vous pouvez éviter cela en créant une valeur time.Time avec l'heure et le fuseau horaire corrects :

<code class="go">import (
    "fmt"
    "time"
)

func main() {
    const layout = "2006-01-02 15:04"
    const timeStr = "2012-07-09 05:02:00"
    const timeZone = "CEST"

    pz, err := time.LoadLocation(timeZone)
    if err != nil {
        fmt.Println(err)
        return
    }

    t, err := time.Parse(layout, timeStr)
    if err != nil {
        fmt.Println(err)
        return
    }

    T := t.In(pz)

    fmt.Println(T)
}</code>
Copier après la connexion

Ceci Le code imprimera le résultat suivant :

2012-07-09 05:02:00 +0200 CEST
Copier après la connexion

La sortie de ce code affiche l'heure dans le fuseau horaire correct.

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