欢迎光临
我们一直在努力

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

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

赞(0) 打赏
未经允许不得转载:码农资源网 » golang time.Parse错误小时超出范围相同格式
分享到

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

登录

找回密码

注册