如何解析Unix 時間戳
在Go 中解析Unix 時間戳可能看起來是一個簡單的任務,但它可能會導致任務意想不到的錯誤。當嘗試使用 time.Parse 解析時間戳記時,即使佈局看起來正確,您也可能會遇到超出範圍的錯誤。
原因是 time.Parse 不處理 Unix 時間戳記。相反,您應該使用 strconv.ParseInt 函數將時間戳字串轉換為 int64,然後使用 time.Unix 函數建立 time.Time 物件。
下面是一個範例:
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) }
此程式碼將輸出正確的時間戳記:
2014-07-16 20:55:46 +0000 UTC
重要注意:
重要注意:重要注意:重要注意:重要注意:重要注意:重要注意:重要注意:重要注意在原來的範例中,使用了strconv.Atoi 而不是strconv.ParseInt。但是,strconv.Atoi 可能會導致 32 位元系統上的整數溢位。因此,建議使用 strconv.ParseInt 來安全地處理所有情況。以上是如何在 Go 中安全解析 Unix 時間戳記?的詳細內容。更多資訊請關注PHP中文網其他相關文章!