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!