golang时区处理
如果要设定时区,那么在使用时间函数之前,就要设定时区。
那么问题就来了,打个比喻说。我想在墨西哥5月6号12点45分时开始促销。而我在中国,那么你要设定了个什么样的数字呢?
墨西哥是西5时区-5,中国是+8时区,相差13个时区,也就是在中国今天是5.6号,那么墨西哥是5.5号
也就是说,我今天要设置5.7号的时间吗?
。。。。。。。。。。。。。
其实我觉得,是不是直接设定5.6号就行了。因为设定了,那么墨西哥是5.6号做的促销,你只要在5.7号跟进就行了。
如果你想要看交易数据(按照中国的时间来看),那样才要做转换。也就是中国时间5.7号,墨西哥卖出了多少货。
好了,不扯蛋了。下面是有需要转时区的写法。
var cstZone = time.FixedZone("CST", -7*3600) //设定要转换的时区
h,:=time.ParseDuration("-1h") //中国的时间是+8区 // element t,err:=time.Parse("2006-01-02 15:04:05",item.SaleStartTime)//要处理的时间格式,使用入的字符串要跟格式化的一致 var tString string if err!=nil{ tString=time.Now().In(cstZone).Format("2006-01-02T15:04:05-0700") // 这时有个坑,不需要的自己想加法解决 }else{
t=t.Add(8*h) //要减去+8区 tString=t.In(cstZone).Format("2006-01-02T15:04:05-0700") // 使用时区转化为对应国家的时间。小心格式化的时间,填自己想要的格式。 }
//如果要设定