Go语言在使用
time.Parse("2006-01-01 15:04:05", time.now)
进行时间解析的时候,会发现解析出来的时间是UTC时间,看源码也可以发现使用的UTC()。
而我们使用的是北京时间,比UTC时间快8个小时,当然我们可以直接在解析后加8个小时,有点麻烦。
go语言并没有全局设置时区这么一个东西,每次输出时间都需要调用一个In()函数改变时区:
var cstSh, _ = time.LoadLocation("Asia/Shanghai") //上海
fmt.Println("SH : ", time.Now().In(cstSh).Format("2006-01-02 15:04:05"))
在windows系统上,没有安装go语言环境的情况下,time.LoadLocation会加载失败。
var cstZone = time.FixedZone("CST", 8*3600) // 东八
fmt.Println("SH : ", time.Now().In(cstZone).Format("2006-01-02 15:04:05"))
最好的办法是用time.FixedZone