首頁 >後端開發 >Golang >golang time.Parse錯誤小時超出範圍相同格式

golang time.Parse錯誤小時超出範圍相同格式

WBOY
WBOY轉載
2024-02-06 09:20:071112瀏覽

golang time.Parse错误小时超出范围相同格式

問題內容

我有時間字串,格式如下:31 July 2023 21:06:36。我想透過使用解析來騰出時間。所以我這樣做了

    dateStr := "20 July 2023 21:06:36"
    formatLayout := "31 July 2023 21:06:36"
    parsedTime, err := time.Parse(formatLayout, dateStr)
    if err != nil {
        return detail, err
    }

但出現錯誤 parsing time "31 July 2023 21:06:36": hour out of range。然後我將格式佈局更改為 02 January 2006 15:04:05

    dateStr := "20 July 2023 21:06:36"
    formatLayout := "02 January 2006 15:04:05"
    parsedTime, err := time.Parse(formatLayout, dateStr)
    if err != nil {
        return detail, err
    }

它產生了正確的時間。我的問題是為什麼如果使用 02 一月 2006 15:04:05 的佈局它不會產生錯誤,但 31 七月 2023 21:06:36 會產生錯誤。它們的格式相同,對嗎?

謝謝


正確答案


Mon Jan 2 15:04:05 MST 2006(或01/02 03: 04:05PM '06 -0700)是Layout 套件中定義的time 常數

這樣定義是因為時間的每個部分(日、月、年、時、分、秒、時區)都是不同的,因此作為佈局使用很方便,因為它不包含不明確的欄位。例如。月始終為 1,日始終為 2,以此類推。

您可以看到,這是 time 套件用來執行解析的「特殊」時間。沒什麼更多的了。

另請參閱“Mon Jan 2 15”的起源:04:05 MST 2006”,golang

以上是golang time.Parse錯誤小時超出範圍相同格式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除