Golang поведение правильное, после изменения переменной окружения TZ
вы сможете увидеть ожидаемый результат. Я запустил его внутри контейнера Golang docker, и он напечатал America/Los_Angeles
. В вашем терминале, пожалуйста, переопределите ваш часовой пояс, как показано ниже:
~$: export TZ=America/Los_Angeles
Это также реализация Docker:
Dockerfile:
FROM golang:1.13.8-alpine3.11
RUN apk update
ENV GO111MODULE=on
WORKDIR /app
ENV TZ=America/Los_Angeles
вы можете создать dockerfile и запустите его следующим образом:
~$: docker build -t stackquestion:1.0 .
~$: docker run --rm -it stackquestion:1.0 sh
часовой пояс. go
import (
"fmt"
"time"
)
func main() {
tzLoc := time.Now().Location().String()
fmt.Println(tzLoc)
}
и при запуске кода вы получите:
/app # go run timezone.go
America/Los_Angeles