"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 con seguridad las marcas de tiempo Unix en Go?

¿Cómo analizar con seguridad las marcas de tiempo Unix en Go?

Publicado el 2025-02-08
Navegar:397

How to Safely Parse Unix Timestamps in Go?

Cómo analizar las marcas de tiempo UNIX

analizar las marcas de tiempo Unix en Go puede parecer una tarea simple, pero puede conducir a errores inesperados. Al intentar analizar una marca de tiempo usando Time.Parse, puede encontrar un error fuera de rango incluso si el diseño parece ser correcto.

La razón de esto es que Time.Parse no maneja las marcas de tiempo UNIX. En su lugar, debe usar la función strconv.parseint para convertir la cadena de marca de tiempo en un int64 y luego usar la función time.unix para crear un objeto Time.time.

aquí hay un ejemplo:

package main

import (
    "fmt"
    "time"
    "strconv"
)

func main() {
    i, err := strconv.ParseInt("1405544146", 10, 64)
    if err != nil {
        panic(err)
    }
    tm := time.Unix(i, 0)
    fmt.Println(tm)
}

Este código generará la marca de tiempo correcta:

2014-07-16 20:55:46  0000 UTC

importante Nota:

En el ejemplo original, se usó strconv.atoi en lugar de strconv.parseint. Sin embargo, Strconv.atoi puede provocar desbordamientos enteros en sistemas de 32 bits. Por lo tanto, se recomienda Strconv.ParseInt para manejar todos los casos de forma segura.

Ú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