golang 指定时区和自定义时区
golang 指定时区
loc,_:=time.LoadLocation("Asia/Shanghai") t:=time.Now() t = t.In(loc)
LoadLocation 有个问题,它依赖于 IANA Time Zone Database (简称 tzdata 吧) 这个数据库,一般linux系统都带了,但是windows系统就没带。
没有 tzdata 就会从$GOROOT/中找。对于没有安装go环境的windows系统来说,就没办法通过 LoadLocation
设置时区。
golang 自定义时区
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))