登录
首页 >  Golang >  Go问答

time.Now() 和 time.Unix() 有何不同之处?

来源:stackoverflow

时间:2024-02-16 13:18:23 448浏览 收藏

本篇文章给大家分享《time.Now() 和 time.Unix() 有何不同之处?》,覆盖了Golang的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。

问题内容

最近我在一次采访中得到了以下代码片段:

package main

import (
    "fmt"
    "time"
)

func main() {
    t1 := time.Now()
    t2 := time.Unix(0, int64(time.Now().Nanosecond()))
    fmt.Println(t1.Nanosecond())
    fmt.Println(t2.Nanosecond())
    fmt.Println(t1 == t2)
}

如果您看到 nanosecond() 函数打印的值相等,但时间对象不相等。有人可以解释一下为什么会这样吗?


正确答案


来自documentation

换句话说,time.nanosecond() 方法给出了自上一秒以来多少纳秒的数字。

因此,这段代码:

time.Unix(0, int64(time.Now().Nanosecond()))

只能产生 unix 纪元之后小于 1 秒的时间。

以上就是《time.Now() 和 time.Unix() 有何不同之处?》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>