将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

广告
将在 10 秒后关闭
bannerAds