Ich versuche, einen Unix- Zeitstempel zu analysieren , erhalte jedoch einen Fehler außerhalb des Bereichs. Das macht für mich keinen Sinn, weil das Layout korrekt ist (wie in den Go-Dokumenten):
package main
import "fmt"
import "time"
func main() {
tm, err := time.Parse("1136239445", "1405544146")
if err != nil{
panic(err)
}
fmt.Println(tm)
}
go
time
unix-timestamp
Hallo
quelle
quelle
strconv.ParseUint
stattdessen zu verwenden, da negative Zahlen sowieso keinen Sinn ergeben?func Unix(sec int64, nsec int64) Time
empfängtint64
Werte. Auch negative Zahlen für Sek. Sind absolut sinnvoll - sie beschreiben Daten vor 1970! :)nsec
Negative Werte bedeuten, dass so viele Nanosekunden aus den Sekunden entfernt werden.Sie können time.Unix direkt verwenden, um den Unix-Zeitstempel in UTC umzuwandeln
Ausgabe
Checken Sie in Go Playground ein: https://play.golang.org/p/5FtRdnkxAd
quelle
Teilen einiger Funktionen, die ich für Daten erstellt habe:
Bitte beachten Sie, dass ich Zeit für einen bestimmten Ort haben wollte (nicht nur UTC-Zeit). Wenn Sie UTC-Zeit wünschen, entfernen Sie einfach die loc-Variable und den Funktionsaufruf .In (loc).
quelle
.In(loc)
gab mir Zeit in-0400 EDT
. Das Ersetzen durch.In(time.UTC)
gab mir Zeit in UTC.Laut der go-Dokumentation gibt Unix eine Ortszeit zurück.
Dies bedeutet, dass die Ausgabe von der Maschine abhängt, auf der Ihr Code ausgeführt wird. Dies ist meistens das, was Sie benötigen. Manchmal möchten Sie jedoch möglicherweise den Wert in UTC haben.
Zu diesem Zweck habe ich das Snippet so angepasst , dass es eine Zeit in UTC zurückgibt:
Dies wird auf meinem Computer gedruckt (in MESZ)
quelle
Ich protokolliere viel, wo die Zeitstempel float64 sind, und verwende diese Funktion, um die Zeitstempel als Zeichenfolge abzurufen:
quelle
Verwenden Sie einfach time.Parse
Beispiel:
Arbeitsbeispiel auf play.golang.org .
quelle