为了账号安全,请及时绑定邮箱和手机立即绑定

golang time.Now().Unix() 文档和实现之间的差异?

golang time.Now().Unix() 文档和实现之间的差异?

Go
DIEA 2022-01-04 13:27:16
https://golang.org/pkg/time/#Unix指出这个函数的签名是func Unix(sec int64, nsec int64) Time意思是,它返回一个Time对象。但以下程序中止并显示错误消息:14: 不能使用 now.Unix() (type int64) 作为 type time.Time in assignment`func main() {    var now time.Time    now = time.Now()    fmt.Println(now)    var secs time.Time    secs = now.Unix()    fmt.Println(secs)}以下版本的程序产生输出func main() {    var now time.Time    now = time.Now()    fmt.Println(now)    // var secs time.Time    secs := now.Unix()    fmt.Println(secs)}2016-04-12 18:20:22.566965512 -0400 EDT1460499622这只是文档中的错误问题吗?
查看完整描述

1 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

文档是正确的,您正在查看错误的Unix. 你使用的方法是这样的;https://golang.org/pkg/time/#Time.Unix它不接受任何参数,在时间对象上调用并以int64. 你引用的版本有两个参数,都是 int64 的,秒和纳秒?(不是肯定的,这就是 nseconds 代表的),它代表 unix 格式的时间,它返回一个time.Time


所以扩展你的第二个例子;


func main() {

    var now time.Time

    now = time.Now()

    fmt.Println(now)


    // var secs time.Time

    secs := now.Unix()

    fmt.Println(secs)

    t := time.Unix(secs, 0) // get a time from the seconds value which is a unix time

    fmt.Println(t)

}

这是上面的与添加的另一行以打印secs. https://play.golang.org/p/KksPPbQ1Jy


查看完整回答
反对 回复 2022-01-04
  • 1 回答
  • 0 关注
  • 238 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信