Go Ask Question で有効なタイムゾーンのリストを取得する

Go Ask Question で有効なタイムゾーンのリストを取得する

HTML テンプレートで使用するために、呼び出しによって受け入れられる一般的なタイムゾーンを Go 言語配列に設定するメソッドを記述したいと思いますtime.Format()(フォーム選択により、タイムゾーンを読み取って選択できるようにします)。これを行う一般的な方法はありますか?

ベストアンサー1

タイムゾーンのリストを取得するには、次のようにします。

package main

import (
    "fmt"
    "os"
    "strings"
)

var zoneDirs = []string{
    // Update path according to your OS
    "/usr/share/zoneinfo/",
    "/usr/share/lib/zoneinfo/",
    "/usr/lib/locale/TZ/",
}

var zoneDir string

func main() {
    for _, zoneDir = range zoneDirs {
        ReadFile("")
    }
}

func ReadFile(path string) {
    files, _ := os.ReadDir(zoneDir + path)
    for _, f := range files {
        if f.Name() != strings.ToUpper(f.Name()[:1]) + f.Name()[1:] {
            continue
        }
        if f.IsDir() {
            ReadFile(path + "/" + f.Name())
        } else {
            fmt.Println((path + "/" + f.Name())[1:])
        }
    }
}

出力:

Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
Africa/Asmera
Africa/Bamako
Africa/Bangui
...

おすすめ記事