Quel est le meilleur moyen d'obtenir l'horodatage actuel dans Go et de le convertir en chaîne? J'ai besoin de la date et de l'heure, par exemple. Format AAAAMMJJhhmmss.
Utilisez la fonction time.Now()
et la méthode time.Format()
.
t := time.Now()
fmt.Println(t.Format("20060102150405"))
affiche 20110504111515
, ou du moins l'a fait il y a quelques minutes. (Je suis à l'heure avancée de l'Est.) Il existe plusieurs formats d'heure prédéfinis dans constantes définis dans le package d'heures.
Vous pouvez utiliser time.Now().UTC()
si vous préférez utiliser l'heure UTC plutôt que votre fuseau horaire local.
Toutes les autres réponses manquent beaucoup pour quelqu'un qui vient de Google et qui cherche un "timestamp in go"! YYYYMMDDhhmmss n'est pas un "horodatage".
Pour obtenir le "timestamp" d'une date à la volée (nombre de secondes à partir de janvier 1970), la fonction correcte est . Unix () , et elle renvoie réellement un entier
Pour des raisons de lisibilité, il est préférable d’utiliser les constantes RFC dans le paquet de temps (me pense)
import "fmt"
import "time"
func main() {
fmt.Println(time.Now().Format(time.RFC850))
}
Utilisez les fonctions time.Now () et time.Format () (comme time.LocalTime () n'existe plus à partir de Go 1.0.3).
t := time.Now()
fmt.Println(t.Format("20060102150405"))
démo en ligne (avec la date fixée dans le passé dans la cour, tant pis)
En écho à la réponse de @ Bactisme, la méthode de récupération de l'horodatage actuel (en millisecondes, par exemple) est la suivante:
msec := time.Now().UnixNano() / 1000000
Ressource: https://gobyexample.com/Epoch