我在 Windows 7x64 上运行 Go 版本 1.3。运行以下代码后,我总是得到 2009-11-10 23:00:00 +0000 UTC。
package main
import (
"fmt"
"time"
)
func main() {
fmt.Println(time.Now())
}
我知道 Go Playground 有这个固定时间是有原因的,但我不明白为什么我的盒子里有这个日期。
更新: 我通过将 Go 版本从 1.2.2 升级到 1.3 解决了这个问题。
当我尝试重现该问题时,我意识到在关闭计算机并在第二天重新打开后问题已得到解决。
我建议升级到1.3后重新启动计算机。
这是Go Lang生日的时间和日期。
他们将此作为 Go Tour 中的固定时间,所以也许您正在运行该旅游。
该时间是Go Tour限制
中提到的Go Tour中使用的固定时间在 Playground 中,时间从 2009-11-10 23:00:00 UTC 开始(确定该日期的重要性是读者的练习)。通过为程序提供确定性输出,可以更轻松地缓存程序。
您确定没有在那里运行代码吗? 可能是本地版本 - 您可以下载并运行游览。
我无法重现您的问题:
C:\gopath\src\timenow>go version
go version go1.3 windows/amd64
C:\gopath\src\timenow>go env
set GOARCH=amd64
set GOBIN=C:\go\bin
set GOCHAR=6
set GOEXE=.exe
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=C:\gopath
set GORACE=
set GOROOT=C:\go
set GOTOOLDIR=C:\go\pkg\tool\windows_amd64
set CC=gcc
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0
set CXX=g++
set CGO_ENABLED=1
C:\gopath\src\timenow>type timenow.go
package main
import (
"fmt"
"time"
)
func main() {
fmt.Println(time.Now())
}
C:\gopath\src\timenow>go run timenow.go
2014-07-02 17:33:20.3270287 -0400 EDT
C:\gopath\src\timenow>time
The current time is: 17:33:23.60
Enter the new time:
C:\gopath\src\timenow>
运行这些命令时会得到什么输出?