ホームページ >バックエンド開発 >Golang >Go で UTC を現地時間に正確に変換するにはどうすればよいですか?

Go で UTC を現地時間に正確に変換するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-04 09:31:35174ブラウズ

How to Accurately Convert UTC to Local Time in Go?

Go で UTC を現地時間に変換する方法

問題ステートメント

特に時間を考慮する場合、UTC 時間を現地時間に変換するのは難しい場合がありますゾーンバリエーション。 Go では、UTC 時間オフセット期間を現在時刻に追加しようとすると、一部のユーザーが誤った結果に遭遇しました。

解決策

問題はタイム ゾーンの処理にあります。タイム オフセット期間を追加すると時間値を調整できますが、特定のタイム ゾーンのルールや DST (夏時間) の変更は考慮されません。 UTC を現地時間に正確に変換するには、time.LoadLocation 関数を使用するのが適切な方法です。

コード例

次のコードは、time.LoadLocation を使用して特定の現地時間を取得する方法を示しています。 location:

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。