我需要在不同的时区获取当前时间。
目前我知道我们可以执行以下操作:
t := time.Now()
fmt.Println("Location:", t.Location(), ":Time:", t)
utc, err := time.LoadLocation("America/New_York")
if err != nil {
fmt.Println("err: ", err.Error())
}
fmt.Println("Location:", utc, ":Time:", t.In(utc))
LoadLocation名称被视为与IANA时区数据库中的文件对应的位置名称,例如" America / New_York"。
是否有更简单的方法来获取当前时间,如果国家名称或GMT偏移量给出了例如印度的+530?
编辑:我也想支持Day light节省。
答案 0 :(得分:32)
//init the loc
loc, _ := time.LoadLocation("Asia/Shanghai")
//set timezone,
now := time.Now().In(loc)
答案 1 :(得分:12)
不,这是最好的方法。您可以使用FixedZone创建自定义Location
并使用该自定义位置。
FixedZone返回一个始终使用给定区域名称的位置 偏移量(UTC东部的秒数)。