首頁 >後端開發 >Golang >如何在 Go 中正確解析非標準日期和時間?

如何在 Go 中正確解析非標準日期和時間?

Patricia Arquette
Patricia Arquette原創
2024-12-09 09:28:05368瀏覽

How to Correctly Parse Non-Standard Dates and Times in Go?

在 Go 解析日期

使用時間戳時,通常會遇到標準 Unix 紀元時間戳以外的格式。例如,tar 產生格式為 2011-01-19 22:15 的時間戳記。為了在 Go 中解析此類時間戳,我們求助於 time.Parse 函數。

但是,只需呼叫time.Parse("2011-01-19 22:15", "2011-01-19 22:15 ") 將導致錯誤:「解析時間2011-01-19 22 :15: 月份超出範圍」。要理解原因,我們需要深入研究 time.Parse 函數的非常規 API。

格式化字串怪癖

time.Parse 函數需要一個指定格式字串如何解釋輸入時間戳記。出於我們的目的,我們使用 2006-01-02 15:04 格式。此字串遵循Go time 套件文件中規定的約定:

  • Mon Jan 2 15:04:05 MST 2006 (MST is GMT-0700)

To我們自己的格式,我們只需要指定標準格式的元素如何在我們的自訂格式中出現。例如,在我們的例子中,結果格式將是 2006-01-02 15:04。

解析時間戳

使用我們的格式化字串,我們現在可以解析時間戳:

import "time"

func main() {
    t, err := time.Parse("2006-01-02 15:04", "2011-01-19 22:15")
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println(t)
}

這將正確解析時間戳並顯示結果time.時間物件。

以上是如何在 Go 中正確解析非標準日期和時間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn