2022-06-18 (土)
日付を扱うコマンドは TZ=JST-9 形式のタイムゾーンを指定ができること多いけど Go のtimeパッケージはいきなり /usr/share/zoneinfo/ 以下のファイルを読みに行って,見つからなければ問答無用でUTCになる.小さいDockerイメージだとほとんどの場合は/usr/share/zoneinfo/とか無くてタイムゾーンを変更できなくて困る.
tzdataをimportしておくか,サマータイムとか分単位の時差とか気にしないなら,適当な場所でtime.Localを設定してしまうのが手っ取り早いのだけど...
fixedtz := os.Getenv("FIXED_TZ") // e.g. "JST-9" if p := strings.LastIndexAny(fixedtz, "+-"); p >= 0 { offset, _ := strconv.Atoi(fixedtz[p:]) time.Local = time.FixedZone(fixedtz, -offset*3600) }