我试图解析Unix timestamp,但出现超出范围的错误.这对我来说没有什么意义,因为布局是正确的(就像在Go文档中一样):

package main

import "fmt"
import "time"

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

    fmt.Println(tm)
}

Playground

推荐答案

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)
}

Output:

2014-07-16 20:55:46 +0000 UTC

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

Edit:

strconv.Atoi更改为strconv.ParseInt,以避免32位系统上的int溢出.

Go相关问答推荐

golang 的通用 map 功能

正在使用terratest执行terraform脚本测试,但遇到错误退出状态1

难以为多个平台添加Go Bazel构建选项

GORM:一个表的两个外键

为什么要立即调用内联函数,而不仅仅是调用其包含的函数?

go中跨域自定义验证的问题

如果第一次匹配条件,如何跳过切片中的值

go-chi: 接受带有反斜杠的 url 路径参数

调用库和直接操作效率有区别吗?

nixOS 上的 Nginx 反向代理在try 加载 css/js 时返回 404

Go 中如何判断 struct 体是否包含另一个 struct 体?

在 Golang 中查看目录是否可写的跨平台方式?

Apache Beam 在 Go 中从 PCollection 中 Select 前 N 行

如何在 Golang http.Request 对象中读取自定义 ajaxParams

Go泛型:无效的复合文字

整理时转换值

Go 并发、goroutine 同步和关闭通道

在 connect-go 拦截器中修改响应体

K8s 算子读取原始数据

手动下载并放置一个 golang mod 文件