如何将 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, rpackage 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" ^: A2014-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 位系统上。 |
|
|
|
|
|