在Go语言上,go语言的time.Now()返回的是当地时区时间,直接用:
time.Now().Format(“2006-01-02 15:04:05”)
输出的是当地时区时间。
但是在docker里有时候是读不到时区信息的,查了好久,发现要这么写,用In()函数改变时区:

var cstSh, _ = time.LoadLocation("Asia/Shanghai") //上海
fmt.Println("SH : ", time.Now().In(cstSh).Format("2006-01-02 15:04:05"))

如果提示Asia/Shanghai找不到,可以这么写:

var cstZone = time.FixedZone("CST", 8*3600)
			newtime = oldtime.In(cstZone).Format("2006-01-02 15:04:05")

oldtime的类型是time.Time。

一般的习惯是在前面设置好,或者在后面设置,而这里是在中间插入设置,而且还叫In,感觉有点别扭

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐