Convertir marca de tiempo como cadena [duplicada]
Quiero obtener una marca de tiempo como cadena. Si utilizo la string
conversión, no obtengo ningún error, pero la salida no es legible. Más tarde, lo quiero como parte de un nombre de archivo. Parece un signo de interrogación para, por ejemplo, Encontré algunos ejemplos como este:https://play.golang.org/p/bq2h3h0YKpno me resuelve completamente el problema. Gracias
now := time.Now() // current local time
sec := now.Unix() // number of seconds since January 1, 1970 UTC
fmt.Println(string(sec))
¿Cómo puedo obtener la marca de tiempo como cadena?
Respuestas
Algo como esto funciona para mi
package main
import (
"fmt"
"strconv"
"time"
)
func main() {
now := time.Now()
unix := now.Unix()
fmt.Println(strconv.FormatInt(unix, 10))
}
Aquí hay dos ejemplos de cómo puede convertir una marca de tiempo de Unix en una cadena.
El primer ejemplo ( s1
) usa el strconv
paquete y su función FormatInt
. El segundo ejemplo ( s2
) usa el fmt
paquete ( documentación ) y su función Sprintf
.
Personalmente, la Sprintf
opción me gusta más desde el punto de vista estético. Todavía no he comprobado el rendimiento.
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)
}
Zona de juegos de Golang: https://play.golang.org/p/jk_xHYK_5Vu