⏱️

Golangでグローバルにtimezoneを設定する

2022/01/15に公開

timezoneの初期値は?

  1. Golangのtimeパッケージでは、環境変数TZがtimezone初期値として設定される。
  2. 環境変数TZが設定されていない場合、システムのデフォルトの/etc/localtimeの設定がtimezone初期値として設定される。

Local represents the system's local time zone. On Unix systems, Local consults the TZ environment variable to find the time zone to use. No TZ means use the system default /etc/localtime. TZ="" means use UTC. TZ="foo" means use file foo in the system timezone directory.

https://pkg.go.dev/time#Location

設定方法

1. TZ環境変数をセットするtzinit.goを作成

tzinit.go
package tzinit

import (
    "os"
)

func init() {
    os.Setenv("TZ", "UTC")
}

2. tzinit.gomain.goでインポート

main.go
package main

import _ "path/to/tzinit"

// Your other, "regular" imports:
import (
    "fmt"
    "os"
    "time"
    ...
)

参考

https://stackoverflow.com/questions/54363451/setting-timezone-globally-in-golang
https://pkg.go.dev/time#Location

Discussion