首頁 >後端開發 >Golang >如何在Go中準確地將UTC時間轉換為特定時區?

如何在Go中準確地將UTC時間轉換為特定時區?

Susan Sarandon
Susan Sarandon原創
2024-12-19 02:14:08289瀏覽

How to Accurately Convert UTC Time to a Specific Time Zone in Go?

在Go 中使用time.LoadLocation 將UTC 轉換為特定時區

將UTC 時間轉換為特定本地時間時,必須考慮時區資訊的準確性。嘗試手動添加時差可能會導致不正確的結果。

相反,Go 中的首選方法是使用 time.LoadLocation 取得所需位置的時區資訊。以下是一個修正後的 Go 程式碼範例:

var countryTz = map[string]string{
    "Hungary": "Europe/Budapest",
    "Egypt":   "Africa/Cairo",
}

func timeIn(name string) time.Time {
    loc, err := time.LoadLocation(countryTz[name])
    if err != nil {
        panic(err)
    }
    return time.Now().In(loc)
}

func main() {
    utc := time.Now().UTC().Format("15:04")
    hun := timeIn("Hungary").Format("15:04")
    eg := timeIn("Egypt").Format("15:04")
    fmt.Println(utc, hun, eg)
}

在此範例中,地圖 (countryTz) 用於將國家/地區名稱與其對應的時區字串關聯起來。 timeIn 函數取得國家/地區名稱,使用 time.LoadLocation 載入時區信息,並傳回該特定時區的當前時間。

然後 main 函數列印 UTC 時間以及匈牙利和本地時間埃及使用 timeIn。此方法可確保正確處理時區和夏令時的差異。

以上是如何在Go中準確地將UTC時間轉換為特定時區?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn