Zeitstempel als Zeichenfolge konvertieren [Duplikat]
Ich möchte einen Zeitstempel als Zeichenfolge erhalten. Wenn ich die string
Konvertierung verwende, habe ich keinen Fehler erhalten, aber die Ausgabe ist nicht lesbar. Später möchte ich es als Teil eines Dateinamens. Es sieht aus wie ein Fragezeichen für zB Ich habe einige Beispiele wie dieses gefunden:https://play.golang.org/p/bq2h3h0YKplöst mich nicht ganz problem. Vielen Dank
now := time.Now() // current local time
sec := now.Unix() // number of seconds since January 1, 1970 UTC
fmt.Println(string(sec))
Wie kann ich den Zeitstempel als Zeichenfolge erhalten?
Antworten
So etwas funktioniert bei mir
package main
import (
"fmt"
"strconv"
"time"
)
func main() {
now := time.Now()
unix := now.Unix()
fmt.Println(strconv.FormatInt(unix, 10))
}
Hier sind zwei Beispiele, wie Sie einen Unix-Zeitstempel in eine Zeichenfolge konvertieren können.
Das erste Beispiel ( s1
) verwendet das strconv
Paket und seine Funktion FormatInt
. Das zweite Beispiel ( s2
) verwendet das fmt
Paket ( Dokumentation ) und seine Funktion Sprintf
.
Persönlich mag ich die Sprintf
Option aus ästhetischer Sicht mehr. Ich habe die Leistung noch nicht überprüft.
package main
import "fmt"
import "time"
import "strconv"
func main() {
t := time.Now().Unix() // t is of type int64
// use strconv and FormatInt with base 10 to convert the int64 to string
s1 := strconv.FormatInt(t, 10)
fmt.Println(s1)
// Use Sprintf to create a string with format:
s2 := fmt.Sprintf("%d", t)
fmt.Println(s2)
}
Golang-Spielplatz: https://play.golang.org/p/jk_xHYK_5Vu