一尘不染

如何将unix时间戳解析为time.Time

go

我正在尝试解析Unix时间戳,但超出范围错误。这对我来说真的没有意义,因为布局正确(如Go文档中所示):

package main

import "fmt"
import "time"

func main() {
    tm, err := time.Parse("1136239445", "1405544146")
    if err != nil{
        panic(err)
    }

    fmt.Println(tm)
}

play


阅读 281

收藏
2020-07-02

共1个答案

一尘不染

time.Parse函数不执行Unix时间戳。相反,您可以使用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

play: http
//play.golang.org/p/v_j6UIro7a

编辑:

从更改为strconv.Atoistrconv.ParseInt以避免32位系统上的int溢出。

2020-07-02