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