关于golang: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包以及工夫戳日期转换等问题,须要思考不同时区对代码的影响。特地是一些国际性业务。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理