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