go - 在 Go 中按时获取 "hour out of range".Parse(layout, value)

标签 go time

尝试使用以下代码解析时间戳字符串时,出现错误小时超出范围:

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

重复/类似:Hour out of range on time.parse in golang

最佳答案

您应该使用正确的格式常量进行解析。

对于 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/

相关文章:

go - 在分块数据的 HTTP 响应中如何设置 Content-Length

时钟守护者功能。程序 'works' 但值打印顺序错误?

python - 在python中使用time sleep方法时出错

xml - 用Go解析xml,有多个项目

go - 如何在 html 上获取所有元素名称(我的错误代码运行循环)

javascript - 从 node.js 移植 MD5 去

go - 如何从 Golang 中的嵌套结构中获取值

C++数组值赋值时间

swift - 使用 SwiftDate 将日期转换为多种格式

java - 如何根据 Unix 时间戳计算本地时间