J'ai MySQL datetime dans ma table au format standard MySQL comme
"2018-09-19 18:26:32.000000"
Et lorsque j'essaie de le convertir en temps de golang en utilisant la fonction time.parse()
, j'obtiens l'erreur que
heure d'analyse "2018-09-19 18:26:32.00000": mois hors plage
J'ai essayé de rechercher en ligne et le format semble être autorisé et couramment utilisé par beaucoup pour réussir l'analyse.
Quelqu'un peut-il m'aider avec ce qui me manque? Vous trouverez ci-dessous l'extrait de code que j'utilise.
import (
"fmt"
"time"
)
layout := "2018-09-19 18:26:32.000000"
fmt.Println(val)
// prints 2018-09-19 18:26:32.000000
t, err := time.Parse(layout, val)
fmt.Println(fmt.Println(t.Unix()))
// prints -62135596800
fmt.Println(err)
// prints parsing time "2018-09-19 18:26:32.000000": month out of range
1 réponse
Votre mise en page est erronée, elle devrait être "2006-01-02 15:04:05.000000"
. La documentation indique :
Parse analyse une chaîne formatée et renvoie la valeur temporelle qu'elle représente. La mise en page définit le format en montrant comment l'heure de référence, définie pour être
Lun 2 janv. 15:04:05 -0700 HNR 2006
serait interprété s'il s'agissait de la valeur ; il sert d'exemple de format d'entrée. La même interprétation sera alors faite à la chaîne d'entrée.
package main
import (
"fmt"
"time"
)
func main() {
val := "2018-09-19 18:26:32.000000"
layout := "2006-01-02 15:04:05.000000"
t, _ := time.Parse(layout, val)
fmt.Println(t.Unix()) // prints 1537381592
}
Les sorties
1537381592
Essayez-le ici
Questions connexes
De nouvelles questions
mysql
MySQL est un système de gestion de base de données relationnelle (RDBMS) gratuit et open source qui utilise SQL (Structured Query Language). N'UTILISEZ PAS cette balise pour d'autres bases de données telles que SQL Server, SQLite, etc. Ce sont des bases de données différentes qui utilisent toutes leurs propres dialectes SQL pour gérer les données.