尝试使用以下代码解析时间戳字符串时,出现错误小时超出范围
:
package main
import (
"log"
"time"
)
func main() {
layout := "2006-01-02 15:04:05 +0530"
timeStr := "2020-05-23 22:55:51 +0530"
t, tErr := time.Parse(layout, timeStr)
log.Printf("Layout: %s", layout)
log.Printf("Time (string): %s", timeStr)
log.Printf("Time (time.Time): %s", t.String())
if tErr != nil {
log.Printf("Error: %s", tErr.Error())
}
}
Playground :https://goplay.space/#SIWJWKduPQg
最佳答案
您应该使用正确的格式常量进行解析。
对于 https://golang.org/src/time/format.go 中的数字时区偏移量
Numeric time zone offsets format as follows:
-0700 ±hhmm
-07:00 ±hh:m
-07 ±hh
在这里解析±hhmm
,您应该使用精确的格式-0700
。
因此在解析格式时使用-0700
而不是+0530
layout := "2006-01-02 15:04:05 -0700"
关于go - 在 Go 中按时获取 "hour out of range".Parse(layout, value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61986079/