Go 为什么我不能将纪元时间转换为字符串?

Go 为什么我不能将纪元时间转换为字符串?,go,Go,我有以下计划: package main import ( "fmt" "time" ) func main() { now := time.Now().UnixNano() / int64(time.Millisecond) nowString := string(now) fmt.Println(nowString) } 我希望大纪元时间可以打印成字符串。相反,我得到: � 如何修复此错误?如果使用此处举例说明的时间函数,您正在进行大量不需要的

我有以下计划:

package main

import (
    "fmt"
    "time"
)

func main() {
    now := time.Now().UnixNano() / int64(time.Millisecond)
    nowString := string(now)
    fmt.Println(nowString)
}
我希望大纪元时间可以打印成字符串。相反,我得到:


如何修复此错误?

如果使用此处举例说明的时间函数,您正在进行大量不需要的计算-

还有。如果只需打印一个整数,则不必将其转换为字符串,只需使用如下格式说明符:

func main() {
    now := time.Now().UnixNano() / int64(time.Millisecond)
    //now is an int64 as you may have observed
    fmt.Printf("%d", now)
    //or even fmt.Println(now)
}
梅因,加油

package main

import "fmt"
import "time"

func main() {
    nanos := time.Now().UnixNano()
    fmt.Println(time.Unix(0, nanos))

    millis := nanos / 1000000
    fmt.Println(millis)
}
看一看

包strconv实现与字符串之间的转换 基本数据类型的表示

在您的情况下,要将数字转换为a,您可能需要使用以下方法:

func FormatInti int64,基int字符串

Formatt返回给定基中i的字符串表示形式,
对于2,无法使用stringnow完成到字符串的转换。参加围棋之旅。使用fmt.Sprintf将数字转换为字符串或使用time.time.Format。大多数基本问题都会在几分钟内得到解答。
convertedString := strconv.FormatInt(YOUR_NUMBER, 10)
func main() {

    now := time.Now()
    secs := now.Unix()
    nanos := now.UnixNano()
    fmt.Println(now)

    millis := nanos / 1000000
    fmt.Println(secs)
    fmt.Println(millis)
    fmt.Println(nanos)

    fmt.Println(time.Unix(secs, 0))
    fmt.Println(time.Unix(0, nanos))
}
$ go run epoch.go 
2012-10-31 16:13:58.292387 +0000 UTC
1351700038
1351700038292
1351700038292387000
2012-10-31 16:13:58 +0000 UTC
2012-10-31 16:13:58.292387 +0000 UTC