Zeitstempel als Zeichenfolge konvertieren [Duplikat]

Dec 07 2020

Ich möchte einen Zeitstempel als Zeichenfolge erhalten. Wenn ich die stringKonvertierung 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

2 Gealber Dec 07 2020 at 05:52

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))
}
1 Jens Dec 07 2020 at 05:51

Hier sind zwei Beispiele, wie Sie einen Unix-Zeitstempel in eine Zeichenfolge konvertieren können.

Das erste Beispiel ( s1) verwendet das strconvPaket und seine Funktion FormatInt. Das zweite Beispiel ( s2) verwendet das fmtPaket ( Dokumentation ) und seine Funktion Sprintf.

Persönlich mag ich die SprintfOption 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