繁体   English   中英

golang 中的 time.parse 时间超出范围

[英]Hour out of range on time.parse in golang

我正在尝试在 go 中解析日期时间字符串。 我将确切的字符串作为格式传递,并获取错误解析时间“01/31/2000 12:59 AM”:小时超出范围。 我从输入中获取该字符串。 我怎样才能使这项工作?

这是代码( https://play.golang.org/p/Kg9KfFpU2z

func main() {
    layout := "01/31/2000 12:59 AM"
    if t, err := time.Parse(layout, "01/31/2000 12:59 AM"); err == nil {
        fmt.Println("Time decoded:", t)
    } else {
        fmt.Println("Failed to decode time:", err)
    }
}

根据您的共享代码,您应该将布局更改为01/02/2006 03:04 AM以修复它:

注意:如果您有 24 小时格式,您应该将布局中的小时部分更改为15 instead of 03并去掉AM部分,例如01/02/2006 15:04

package main

import (
    "fmt"
    "time"
)

func main() {
    layout := "01/02/2006 03:04 AM"
    if t, err := time.Parse(layout, "01/31/2000 12:59 AM"); err == nil {
        fmt.Println("Time decoded:", t)
    } else {
        fmt.Println("Failed to decode time:", err)
    }
}

这是一篇很好的文章,可以帮助您了解不同的布局。

您的格式需要使用非常具体的日期和时间,请参阅文档:

https://golang.org/pkg/time/#example_Parse

Parse 解析一个格式化的字符串并返回它所代表的时间值。 布局通过显示如何定义参考时间来定义格式

2006 年 1 月 2 日星期一 15:04:05 -0700 MST

所以你需要https://play.golang.org/p/c_Xc_R2OHb

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM