"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo analizar una cadena de tiempo con una zona horaria específica en Go?

¿Cómo analizar una cadena de tiempo con una zona horaria específica en Go?

Publicado el 2024-11-15
Navegar:469

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

Analizar el tiempo con una zona horaria específica

Puedes usar time.ParseTime() para obtener una estructura de tiempo a partir de una cadena. Toma una cadena de diseño como argumento, que especifica el formato de la cadena de entrada. La cadena de diseño debe coincidir exactamente con el formato de la cadena de entrada.

Si necesita analizar una cadena de tiempo que incluya una zona horaria, puede usar time.ParseInLocation(). Esta función toma una cadena de diseño y una ubicación como argumentos. La ubicación puede ser una hora.Valor de ubicación o una cadena que representa un nombre de zona horaria.

Por ejemplo, el siguiente código analiza una cadena de tiempo que incluye una zona horaria:

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)
}

Este código imprimirá el siguiente resultado:

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

La función time.ParseInLocation() analizará la hora cadena de acuerdo con la cadena de diseño y la ubicación especificada. En este caso, la cadena de diseño es "2006-01-02 15:04" y la ubicación es "CEST". La función time.ParseInLocation() devolverá un valor time.Time que representa la hora analizada.

Si no especifica una ubicación, la función time.ParseInLocation() utilizará la zona horaria local. Esto significa que la hora analizada se convertirá a la zona horaria local.

Puedes evitar esto creando una hora.Valor de hora con la hora y zona horaria correctas:

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)
}

Este código imprimirá el siguiente resultado:

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

El resultado de este código muestra la hora en el formato correcto huso horario.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3