Преобразовать метку времени в строку [дубликат]
Я хочу получить метку времени в виде строки. Если я использую string
преобразование, у меня нет ошибок, но вывод не читается. Позже я хочу, чтобы он был частью имени файла. Это похоже на вопросительный знак, например, я нашел несколько таких примеров:https://play.golang.org/p/bq2h3h0YKpне решает полностью меня проблему. Спасибо
now := time.Now() // current local time
sec := now.Unix() // number of seconds since January 1, 1970 UTC
fmt.Println(string(sec))
Как я могу получить метку времени в виде строки?
Ответы
Что-то вроде этого работает у меня
package main
import (
"fmt"
"strconv"
"time"
)
func main() {
now := time.Now()
unix := now.Unix()
fmt.Println(strconv.FormatInt(unix, 10))
}
Вот два примера того, как вы можете преобразовать временную метку unix в строку.
В первом примере ( s1
) используется strconv
пакет и его функция FormatInt
. Во втором примере ( s2
) используется fmt
пакет ( документация ) и его функция Sprintf
.
Лично мне Sprintf
вариант больше нравится с эстетической точки зрения. Работоспособность еще не проверял.
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)
}
Игровая площадка Голанг: https://play.golang.org/p/jk_xHYK_5Vu