https://golang.org/pkg/time/#Unix
指出该函数的签名是
func Unix(sec int64, nsec int64) Time
Run Code Online (Sandbox Code Playgroud)
意思是,它返回一个Time对象。
但以下程序会中止并显示错误消息:
14: 不能在赋值中使用 now.Unix() (int64 类型)作为 time.Time 类型
func main() {
var now time.Time
now = time.Now()
fmt.Println(now)
var secs time.Time
secs = now.Unix()
fmt.Println(secs)
}
Run Code Online (Sandbox Code Playgroud)
以下版本的程序产生输出
func main() {
var now time.Time
now = time.Now()
fmt.Println(now)
// var secs time.Time
secs := now.Unix()
fmt.Println(secs)
}
Run Code Online (Sandbox Code Playgroud)
2016-04-12 18:20:22.566965512 -0400 EDT
1460499622
这只是文档中的错误问题吗?
文档是正确的,您正在查看错误版本的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)
}
Run Code Online (Sandbox Code Playgroud)
这是上面的内容,添加了另一行来打印 的类型secs。https://play.golang.org/p/KksPPbQ1Jy
| 归档时间: |
|
| 查看次数: |
3756 次 |
| 最近记录: |