如何获取Golang其他时区的当前时间戳?

时间:2015-01-16 19:47:54

标签: go

我需要在不同的时区获取当前时间。

目前我知道我们可以执行以下操作:

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节省。

2 个答案:

答案 0 :(得分:32)

//init the loc
loc, _ := time.LoadLocation("Asia/Shanghai")

//set timezone,  
now := time.Now().In(loc)

答案 1 :(得分:12)

不,这是最好的方法。您可以使用FixedZone创建自定义Location并使用该自定义位置。

  

FixedZone返回一个始终使用给定区域名称的位置   偏移量(UTC东部的秒数)。