>백엔드 개발 >Golang >Go의 time.Format()에 사용 가능한 시간대 목록을 어떻게 얻을 수 있나요?

Go의 time.Format()에 사용 가능한 시간대 목록을 어떻게 얻을 수 있나요?

Patricia Arquette
Patricia Arquette원래의
2024-12-01 09:43:10659검색

How Can I Get a List of Usable Time Zones for Go's time.Format()?

Go의 시간에 사용 가능한 시간대 목록 가져오기.Format()

사용자에게 시간대를 선택하는 편리한 방법을 제공합니다. 애플리케이션의 경우 유효한 시간대 목록으로 드롭다운을 채워야 할 수도 있습니다. 이 목록은 Go에서 간단한 방법으로 생성할 수 있습니다.

해결책:

시간과 함께 사용할 수 있고 일반적으로 지원되는 시간대의 포괄적인 목록을 얻으려면. Format() 함수를 사용하면 다음을 사용할 수 있습니다. 코드:

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:])
        }
    }
}

설명:

  • 이 코드는 유효한 시간대를 찾기 위해 잠재적인 시간대 디렉터리를 반복합니다.
  • 다음과 같습니다. 디렉토리 내용을 확인하고 대소문자가 혼합된 항목은 무시합니다.
  • 항목이 디렉토리인 경우 ReadFile 함수를 재귀적으로 호출하여 검색을 계속합니다.
  • 그런 다음 시간대 이름은 앞에 슬래시 없이 인쇄됩니다.

출력:

Executing 코드는 다음과 같은 시간대 이름 목록을 생성합니다.

Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
...

사용자 친화적인 시간대 선택 기능을 위해 이 목록을 HTML 템플릿에 통합할 수 있습니다.

위 내용은 Go의 time.Format()에 사용 가능한 시간대 목록을 어떻게 얻을 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.