问题内容
我有时间字符串,格式如下: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
包用来执行解析的“特殊”时间。没什么更多的了。
想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
如有侵权请发送邮件至1943759704@qq.com删除
码农资源网 » golang time.Parse错误小时超出范围相同格式
本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
如有侵权请发送邮件至1943759704@qq.com删除
码农资源网 » golang time.Parse错误小时超出范围相同格式