Maison  >  Article  >  développement back-end  >  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
Barbara Streisandoriginal
2024-10-24 18:03:02564parcourir

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>

Ceci Le code affichera le résultat suivant :

2012-07-09 05:02:00 +0000 CEST

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>

Ceci Le code imprimera le résultat suivant :

2012-07-09 05:02:00 +0200 CEST

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!

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