Преобразовать метку времени в строку [дубликат]

Dec 07 2020

Я хочу получить метку времени в виде строки. Если я использую 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))

Как я могу получить метку времени в виде строки?

Ответы

2 Gealber Dec 07 2020 at 05:52

Что-то вроде этого работает у меня

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

Вот два примера того, как вы можете преобразовать временную метку 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