1 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超13個(gè)贊
時(shí)間。Unix() 函數(shù)接受 2 個(gè)參數(shù):
func Unix(sec int64, nsec int64) Time
如果有納秒,則可以傳遞 的 納秒值。例如:int640secnsec
nsec := int64(1623840300988135567)
t := time.Unix(0, nsec)
fmt.Println(t) // 2021-06-16 10:45:00.988135567 +0000 UTC
傳遞超出范圍 [0, 999999999] 的納秒值是有效的。
如果你有一個(gè)納秒值不適合,那么只需將其分成2部分:秒和剩余的納秒。打破它只是簡(jiǎn)單地除以并得到除以的其余部分(這是一秒中的納秒數(shù))。int641e9
例如:
x := uint64(math.MaxInt64)
t = time.Unix(0, int64(x))
fmt.Println(t)
x += uint64(time.Hour)
t = time.Unix(int64(x/1e9), int64(x%1e9))
fmt.Println(t)
添加到 顯然不適合 。然而,上面的代碼運(yùn)行良好并輸出:time.Hourmath.MaxInt64int64
2262-04-11 23:47:16.854775807 +0000 UTC
2262-04-12 00:47:16.854775807 +0000 UTC
在Go Playground上嘗試一下。
- 1 回答
- 0 關(guān)注
- 216 瀏覽
添加回答
舉報(bào)