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