J'essaye d'analyser un horodatage Unix mais j'obtiens une erreur hors de portée. Cela n'a pas vraiment de sens pour moi, car la mise en page est correcte (comme dans la documentation Go):
package main
import "fmt"
import "time"
func main() {
tm, err := time.Parse("1136239445", "1405544146")
if err != nil{
panic(err)
}
fmt.Println(tm)
}
strconv.ParseUint
place car les nombres négatifs n'ont pas de sens de toute façon?func Unix(sec int64, nsec int64) Time
reçoit desint64
valeurs. De plus, les nombres négatifs pour sec ont un sens parfait - ils décrivent des dates antérieures à 1970! :) Pour censec
qui est des valeurs négatives, cela signifie supprimer autant de nanosecondes des secondes.Vous pouvez utiliser directement time.Fonction Unix de l'heure qui convertit l'horodatage Unix en UTC
Production
Enregistrez-vous sur Go Playground: https://play.golang.org/p/5FtRdnkxAd
la source
Partage de quelques fonctions que j'ai créées pour les dates:
Veuillez noter que je voulais obtenir l'heure pour un endroit particulier (pas seulement l'heure UTC). Si vous voulez l'heure UTC, supprimez simplement la variable loc et l'appel de la fonction .In (loc).
la source
.In(loc)
m'a donné du temps-0400 EDT
. Le remplacer par.In(time.UTC)
m'a donné du temps en UTC.Selon la documentation go , Unix renvoie une heure locale.
Cela signifie que la sortie dépendra de la machine sur laquelle votre code s'exécute, ce qui, le plus souvent, est ce dont vous avez besoin, mais parfois, vous voudrez peut-être avoir la valeur en UTC.
Pour ce faire, j'ai adapté l' extrait de code pour qu'il renvoie une heure UTC:
Cela s'imprime sur ma machine (en CEST)
la source
Je fais beaucoup de journalisation où les horodatages sont float64 et utilise cette fonction pour obtenir les horodatages sous forme de chaîne:
la source
Utilisez simplement le temps.
exemple:
Exemple de travail sur play.golang.org .
la source