golang 指定時區linux
loc,_:=time.LoadLocation("Asia/Shanghai") t:=time.Now() t = t.In(loc)
LoadLocation 有個問題,它依賴於 IANA Time Zone Database (簡稱 tzdata 吧) 這個數據庫,通常linux系統都帶了,可是windows系統就沒帶。golang
沒有 tzdata 就會從$GOROOT/中找。對於沒有安裝go環境的windows系統來講,就沒辦法經過 LoadLocation
設置時區。數據庫
golang 自定義時區windows
a1 := time.Now() fmt.Println("a1:", a1) a2 := a1.Format("2006-01-02 15:04:05") fmt.Println("a2:", a2) a3, _ := time.Parse("2006-01-02 15:04:05", a2) fmt.Println("a3:", a3) a4 := time.Now() fmt.Println("a4:", a4) a5 := a4.UTC() fmt.Println("a5:", a5) secondsEastOfUTC := int((8 * time.Hour).Seconds())
//上面是計算8小時一共多少秒,下面是定義a6這個變量爲自定義的時間格式,下面用的時間格式名叫"CST" ,這個格式咱們定義爲utc時間+8小時 a6 := time.FixedZone("CST", secondsEastOfUTC) a7 := a5.In(a6) fmt.Println(a7) fmt.Println("a5.Sub(a3):", a5.Sub(a3)) fmt.Println("a4.Sub(a1):", a4.Sub(a1))