Golang中time.Now()返回2009年是怎么回事?
Golang中time.Now()返回2009年是怎么回事? 我得到
2009-11-10 23:00:00 +0000 UTC m=+0.000000001
使用这段代码。
package main
import (
"fmt"
"time"
)
func main() {
fmt.Println(time.Now())
}
如何获取正确的时间?Fiddle
2 回复
这是Go语言的一个已知特性。time.Now()在Go Playground中总是返回固定时间2009-11-10 23:00:00 UTC,这是为了确保代码示例在不同时间运行时都能得到确定性的输出结果。
在实际的Go程序中(非Playground环境),time.Now()会返回当前的正确时间。如果你想在本地测试,可以:
package main
import (
"fmt"
"time"
)
func main() {
// 在本地运行会得到当前时间
fmt.Println("当前时间:", time.Now())
// 格式化输出
fmt.Println("格式化时间:", time.Now().Format("2006-01-02 15:04:05"))
// 获取时间戳
fmt.Println("Unix时间戳:", time.Now().Unix())
}
在本地编译运行这个程序,你会看到当前的正确时间。Go Playground的环境是沙盒化的,所以返回固定时间以确保示例代码的可重现性。


