Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wrong time.Unix()/time.UnixNano (int64) conversion for "9999-12-31 23:59:59" #35989

Closed
xtrimf opened this issue Dec 5, 2019 · 2 comments
Closed

Comments

@xtrimf
Copy link

xtrimf commented Dec 5, 2019

What version of Go are you using (go version)?

1.13.1

Does this issue reproduce with the latest release?

yes

What operating system and processor architecture are you using (go env)?

go env Output
$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/root/.cache/go-build"
GOENV="/root/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/root/go_projects"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/root/go_projects/src/git/go.mod"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build769112432=/tmp/go-build -gno-record-gcc-switches"

What did you do?

ts, _ := time.Parse("2006-01-02 15:04:05", "9999-12-31 23:59:59")
tsn := ts.UnixNano()
fmt.Println(tsn)

What did you expect to see?

253402300799000000000

What did you see instead?

-4852116232933722624

@xtrimf xtrimf changed the title Wrong time.Unix()/time.UnixNano conversion for "9999-12-31 23:59:59" Wrong time.Unix()/time.UnixNano (int64) conversion for "9999-12-31 23:59:59" Dec 5, 2019
@xtrimf
Copy link
Author

xtrimf commented Dec 5, 2019

shouldn't have problems with int64 and "year 2038 bug"

@xtrimf xtrimf closed this as completed Dec 5, 2019
@xtrimf xtrimf reopened this Dec 5, 2019
@xtrimf
Copy link
Author

xtrimf commented Dec 5, 2019

according to the docs:

The result is undefined if the Unix time in nanoseconds cannot be represented by an int64 (a date before the year 1678 or after 2262)

@xtrimf xtrimf closed this as completed Dec 5, 2019
@golang golang locked and limited conversation to collaborators Dec 4, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants