2022-05 << 2022-06 >> 2022-07

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)
    }
2022-05 << 2022-06 >> 2022-07