golang 时区问题

golang中需要将int64类型时间戳转当前时间,代码如下

func Date(format string, unixTime int64) string {
   time := time.Unix(unixTime, 0)
   return time.Format(format)
}

测试了下,没有问题。但是发现travis-ci中测试代码一直不通过。查询发现,是由于不通时区导致的。修改代码如下

func Date(format string, unixTime int64) string {
   //TODO 指定时区 time.LoadLocation windows系统需要配置go环境 否则可能会有问题
 var cstSh, _ = time.LoadLocation("Asia/Shanghai") //上海
 tm := time.Unix(unixTime, 0).In(cstSh)
   return tm.Format(format)
}

测试通过。


ps: 项目中涉及导time包以及时间戳日期转换等问题,需要考虑不同时区对代码的影响。特别是一些国际性业务。

你可能感兴趣的:(golang)