在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中文網其他相關文章!