使用時間戳在程式設計中至關重要。處理 Unix 時間戳記時,使用 time.Parse 解析時間戳記時可能會遇到「超出範圍」錯誤。本文將提供解決 Go 中此問題的解決方案。
嘗試使用 time.Parse 函數解析 Unix 時間戳記可能會因佈局不正確而導致錯誤。這可能會令人困惑,因為根據 Go 文檔,佈局似乎是正確的。
time.Parse 函數不適用於解析 Unix 時間戳記。若要解析 Unix 時間戳,您可以使用 strconv.ParseInt 函數將字串時間戳轉換為 int64,然後使用 time.Unix 建立一個 time.Time 值。
Here's a更正的程式碼範例示範如何正確解析Unix 時間戳:
package main import ( "fmt" "time" "strconv" ) func main() { timestamp := "1405544146" i, err := strconv.ParseInt(timestamp, 10, 64) if err != nil { panic(err) } tm := time.Unix(i, 0) fmt.Println(tm) }
strconv.ParseInt 函數採用時間戳字串、其基底數(本例為10)和位元大小(64 用於處理大時間戳記)。它傳回時間戳的 int64 表示形式。
time.Unix 函數採用 int64 值並建立表示時間戳記的 time.Time 值。
程式碼上面會輸出以下內容:
2014-07-16 20:55:46 +0000 UTC
透過使用strconv.ParseInt 和time.Unix 而不是time.Parse ,可以在Go 中成功解析Unix 時間戳並避免「超出範圍」錯誤。這種方法為處理時間戳提供了一個簡單且可靠的解決方案。
以上是在 Go 中解析 Unix 時間戳記時如何避免「超出範圍」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!