我有時間字串,格式如下: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中文網其他相關文章!