Maison >développement back-end >Golang >Comment puis-je analyser correctement les horodatages Unix dans Go ?

Comment puis-je analyser correctement les horodatages Unix dans Go ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-18 21:20:15441parcourir

How Can I Correctly Parse Unix Timestamps in Go?

Analyse des horodatages Unix dans Go

Analyse des horodatages Unix dans Go peut sembler simple, mais cela peut entraîner des erreurs inattendues. Cet article explore un problème fréquemment rencontré et propose une solution.

Énoncé du problème

Considérez l'extrait de code suivant :

package main

import "fmt"
import "time"

func main() {
    tm, err := time.Parse("1136239445", "1405544146")
    if err != nil{
        panic(err)
    }

    fmt.Println(tm)
}

L'objectif est pour convertir l'horodatage Unix "1405544146" en un objet time.Time. Cependant, l'exécution de ce code entraîne une erreur :

panic: parsing time "1405544146" as "1136239445": cannot parse "1405544146" as "06:20:23.9445"

Solution

La fonction time.Parse est conçue pour analyser les chaînes de temps en utilisant une disposition spécifiée. Dans ce cas, la mise en page « 1136239445 » ne correspond pas au format de l'horodatage Unix. Pour analyser un horodatage Unix, vous devez utiliser une représentation entière.

Au lieu d'utiliser time.Parse, vous pouvez utiliser strconv.ParseInt pour analyser la chaîne en un int64, puis créer l'horodatage en utilisant time.Unix :

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

Sortie :

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

En utilisant strconv.ParseInt, vous pouvez éviter les erreurs liées à la mise en page et analyser avec succès les horodatages Unix.

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