Golang time.Now() is always 2009-11-10 23:00:00 +0

2019-02-12 01:19发布

im running Go version 1.3 on windows 7x64, after run the following code i always get 2009-11-10 23:00:00 +0000 UTC

package main

import (
    "fmt"
    "time"
)

func main() {
    fmt.Println(time.Now())
}

i know that go playgroud have this fixed time for one reason, but i don't understand why i get this date in my box

UPDATE: I realized this issue by upgrading the go version from 1.2.2 to 1.3

Trying to reproduce the issue, i realized this had been fixed after switching off and on computer next day.

I recommend to restart the computer after upgrading to 1.3

标签: datetime time go
2条回答
Luminary・发光体
2楼-- · 2019-02-12 01:52

I'm unable to reproduce your issue:

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>

What output do you get when you run these commands?

查看更多
仙女界的扛把子
3楼-- · 2019-02-12 01:54

That time is the fixed time used in the Go Tour as mentioned in the Go Tour limitations

In the playground the time begins at 2009-11-10 23:00:00 UTC (determining the sigificance of this date is an exercise for the reader). This makes it easier to cache programs by giving them deterministic output.

Are you sure you were not running code there? Possibly local version - you can download and run the tour.

查看更多
登录 后发表回答