我正在尝试解析 Unix时间戳,但出现超出范围的错误。这对我来说没有意义,因为布局是正确的(如 Go 文档中所示):
package main import "fmt" import "time" func main() { tm, err := time.Parse("1136239445", "1405544146") if err != nil{ panic(err) } fmt.Println(tm) }
该time.Parse函数不处理 Unix 时间戳。相反,您可以使用strconv.ParseInt将字符串解析为int64并使用以下内容创建时间戳time.Unix:
time.Parse
strconv.ParseInt
int64
time.Unix
package main import ( "fmt" "time" "strconv" ) func main() { i, err := strconv.ParseInt("1405544146", 10, 64) if err != nil { panic(err) } tm := time.Unix(i, 0) fmt.Println(tm) }
输出:
2014-07-16 20:55:46 +0000 UTC
Playground: http : //play.golang.org/p/v_j6UIro7a
编辑:
从strconv.Atoi改为strconv.ParseInt以避免 int 在 32 位系统上溢出。
strconv.Atoi