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

Go中如何準確將UTC轉換為當地時間?

Patricia Arquette
發布: 2025-01-04 09:31:35
原創
170 人瀏覽過

How to Accurately Convert UTC to Local Time in Go?

如何在Go 中將UTC 時間轉換為當地時間

問題陳述

將UTC 時間轉換為當地時間可能是一個挑戰,尤其是在考慮時間時區域變化。在 Go 中,一些用戶在嘗試將 UTC 時間偏移持續時間添加到當前時間時遇到了不正確的結果。

問題在於時區的處理。雖然添加時間偏移持續時間可以調整時間值,但它不考慮特定時區的規則和 DST(夏令時)變化。要將UTC準確地轉換為本地時間,正確的方法是使用time.LoadLocation函數。

程式碼範例

下面的程式碼示範如何使用time.LoadLocation取得特定時間的本地時間locations:

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,程式碼確保考慮到時區規則和 DST 調整,提供準確的當地時間。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板