回答

收藏

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

技术问答 技术问答 206 人阅读 | 0 人回复 | 2023-09-12

我试着分析 Unix时间戳,但有超出范围的错误。这对我来说毫无意义,因为布局是正确的(如 Go 文档中所示):3 Z- M+ q" x; `/ e
    package mainimport "fmt"import "time"func main()      tm,err := time.Parse("1136239445","1405544146")    if err != nil{          panic(err)   }    fmt.Println(tm)}
    ' r, F& D6 g5 ]% b# Q1 E
               
5 y+ q: X0 x3 s# Q& o9 u# ]    解决方案:                                                                ' R! m7 I+ A4 d1 ^  }1 A1 s- d1 S0 s' f
                                                                该time.Parse不处理函数 Unix 时间戳。相反,你可以用它strconv.ParseInt将字符串解析为int64使用以下内容创建时间戳time.Unix:
, w# D" c( ]8 d& p+ o# u& O, r
    package mainimport  "fmt"    "time"    "strconv")func main()      i,err := strconv.ParseInt("1405544146",1064)   if err != nil              panic(err)   }    tm := time.Unix(i,0)    fmt.Println(tm)}1 T* g# F5 _5 |# @( u# J: u. z6 N* w
输出:
. o9 F, n( M) N0 ?9 M" ^: A
    2014-07-16 20:55:46 UTC
    , K2 `. I' j, ]4 |  ?$ @
Playground:    http :    //play.golang.org/p/v_j6UIro7a
0 `" @* X3 P; @8 h编辑:
. t% Y' ?( f* i5 c3 f7 e从strconv.Atoi改为strconv.ParseInt以避免 int 溢出在 32 位系统上。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则