将UTC时间转换为日本时间
在日本地区的本地运行中,time.Now()会变成JST时区。但是在Google App Engine的开发服务器dev_appserver.py和http://play.golang.org/中则会变成UTC时区。
只需按照以下方式,即可将其转换为JST。
time.FixedZone(name string, offset int) *Locationでタイムゾーンを作成
func (t Time) In(loc *Location) Timeを使って指定したタイムゾーンでの日時を取得
package main
import (
"fmt"
"time"
)
func main() {
now := time.Now()
fmt.Println(now.Format(time.RFC3339))
nowUTC := now.UTC()
fmt.Println(nowUTC.Format(time.RFC3339))
// This fails with "panic: unknown time zone Asia/Tokyo" at play.golang.org
// jst, err := time.LoadLocation("Asia/Tokyo")
//if err != nil {
// panic(err)
//}
jst := time.FixedZone("Asia/Tokyo", 9*60*60)
nowJST := nowUTC.In(jst)
fmt.Println(nowJST.Format(time.RFC3339))
// results at local
// 2013-09-30T02:21:12+09:00
// 2013-09-29T17:21:12Z
// 2013-09-30T02:21:12+09:00
//
// results at http://play.golang.org/
// 2009-11-10T23:00:00Z
// 2009-11-10T23:00:00Z
// 2009-11-11T08:00:00+09:00
}
我也尝试了使用func LoadLocation(name string) (*Location, error)来获得地点,但在play.golang.org上,Asia/Tokyo被识别为未知的时区并报错了。
点击此链接,您可以在 Go playground 上进行测试:http://play.golang.org/p/-e7unXO1f9