J'essaye d'ajouter quelques valeurs de ma base de données à un []string
dans Go. Certains d'entre eux sont des horodatages.
J'obtiens l'erreur:
impossible d'utiliser U.Created_date (type time.Time) comme chaîne de type dans l'élément de tableau
Puis-je convertir time.Time
en string
?
type UsersSession struct {
Userid int
Timestamp time.Time
Created_date time.Time
}
type Users struct {
Name string
Email string
Country string
Created_date time.Time
Id int
Hash string
IP string
}
-
var usersArray = [][]string{}
rows, err := db.Query("SELECT u.id, u.hash, u.name, u.email, u.country, u.IP, u.created_date, us.timestamp, us.created_date FROM usersSession AS us LEFT JOIN users AS u ON u.id = us.userid WHERE us.timestamp + interval 30 minute >= now()")
U := Users{}
US := UsersSession{}
for rows.Next() {
err = rows.Scan(&U.Id, &U.Hash, &U.Name, &U.Email, &U.Country, &U.IP, &U.Created_date, &US.Timestamp, &US.Created_date)
checkErr(err)
userid_string := strconv.Itoa(U.Id)
user := []string{userid_string, U.Hash, U.Name, U.Email, U.Country, U.IP, U.Created_date, US.Timestamp, US.Created_date}
// -------------
// ^ this is where the error occurs
// cannot use U.Created_date (type time.Time) as type string in array element (for US.Created_date and US.Timestamp aswell)
// -------------
usersArray = append(usersArray, user)
log.Print("usersArray: ", usersArray)
}
ÉDITER
J'ai ajouté ce qui suit. Cela fonctionne maintenant, merci.
userCreatedDate := U.Created_date.Format("2006-01-02 15:04:05")
userSessionCreatedDate := US.Created_date.Format("2006-01-02 15:04:05")
userSessionTimestamp := US.Timestamp.Format("2006-01-02 15:04:05")
Réponses:
Vous pouvez utiliser la
Time.String()
méthode pour convertir untime.Time
en unstring
. Cela utilise la chaîne de format"2006-01-02 15:04:05.999999999 -0700 MST"
.Si vous avez besoin d'un autre format personnalisé, vous pouvez utiliser
Time.Format()
. Par exemple, pour obtenir l'horodatage au format,yyyy-MM-dd HH:mm:ss
utilisez la chaîne de format"2006-01-02 15:04:05"
.Exemple:
Sortie (essayez-le sur le Go Playground ):
Remarque: l'heure sur le Go Playground est toujours définie sur la valeur indiquée ci-dessus. Exécutez-le localement pour voir la date / heure actuelle.
Notez également qu'en utilisant
Time.Format()
, comme mise en page,string
vous devez toujours passer le même temps - appelé l'heure de référence - formaté de la manière dont vous voulez que le résultat soit formaté. Ceci est documenté àTime.Format()
:la source
Mon Jan 2 15:04:05 -0700 MST 2006
et mettre cette heure dans le format de votre choix. Go comprendra le format si vous l'avez passé avec cette valeur. Vous ne pouvez utiliser aucune autre valeur de temps. Il m'a fallu un certain temps pour comprendre cela et j'ai pensé à l'ajouter en commentairela source
Allez Playground http://play.golang.org/p/DN5Py5MxaB
la source
Veuillez trouver la solution simple pour convoquer le format date et heure dans Go Lang. Veuillez trouver l'exemple ci-dessous.
Lien du package: https://github.com/vigneshuvi/GoDateFormat .
Veuillez trouver les plackholders: https://medium.com/@Martynas/formatting-date-and-time-in-golang-5816112bf098
la source
la source