首頁 > 後端開發 > Golang > 在 Go 中解析 Unix 時間戳記時如何避免「超出範圍」錯誤?

在 Go 中解析 Unix 時間戳記時如何避免「超出範圍」錯誤?

Mary-Kate Olsen
發布: 2024-12-31 22:36:10
原創
1025 人瀏覽過

How to Avoid

如何在 Go 中處理 Unix 時間戳

簡介

使用時間戳在程式設計中至關重要。處理 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中文網其他相關文章!

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