特に時間を考慮する場合、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 サイトの他の関連記事を参照してください。