我想写一个方法,用time.Format()
调用接受的常见时区填充Go Language数组,以供HTML模板使用(窗体选择允许他们读取并选择其时区)。有一种通用的方法可以做到这一点吗?
最佳答案
要获取时区列表,可以使用类似以下内容的方法:
package main
import (
"fmt"
"io/ioutil"
"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, _ := ioutil.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
...
关于go - 获取Go中有效时区的列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40120056/