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
- 1 回答
- 0 关注
- 238 浏览
添加回答
举报
0/150
提交
取消