Converter carimbo de data / hora como string [duplicado]

Dec 07 2020

Quero obter um carimbo de data / hora como string. Se eu usar a stringconversão, não recebo nenhum erro, mas a saída não é legível. Mais tarde, quero que façamos parte de um nome de arquivo. Parece um ponto de interrogação, por exemplo, Encontrei alguns exemplos como este:https://play.golang.org/p/bq2h3h0YKpnão resolve completamente o meu problema. obrigado

now := time.Now()      // current local time
sec := now.Unix()      // number of seconds since January 1, 1970 UTC
fmt.Println(string(sec))

Como posso obter o carimbo de data / hora como string?

Respostas

2 Gealber Dec 07 2020 at 05:52

Algo assim funciona para mim

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

Aqui estão dois exemplos de como você pode converter um carimbo de data / hora Unix em uma string.

O primeiro exemplo ( s1) usa o strconvpacote e sua função FormatInt. O segundo exemplo ( s2) usa o fmtpacote ( documentação ) e sua função Sprintf.

Pessoalmente, gosto Sprintfmais da opção do ponto de vista estético. Ainda não verifiquei o desempenho.

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 Playground: https://play.golang.org/p/jk_xHYK_5Vu