首頁 > 後端開發 > Golang > 如何在 Go 中安全解析 Unix 時間戳記?

如何在 Go 中安全解析 Unix 時間戳記?

Mary-Kate Olsen
發布: 2024-12-17 00:49:25
原創
297 人瀏覽過

How to Safely Parse Unix Timestamps in Go?

如何解析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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板