登录
首页 >  Golang >  Go问答

处理 Go 中 time.Parse(layout, value) 函数的“小时字段值范围溢出”

来源:stackoverflow

时间:2024-02-28 09:36:24 394浏览 收藏

从现在开始,努力学习吧!本文《处理 Go 中 time.Parse(layout, value) 函数的“小时字段值范围溢出”》主要讲解了等等相关知识点,我会在golang学习网中持续更新相关的系列文章,欢迎大家关注并积极留言建议。下面就先一起来看一下本篇正文内容吧,希望能帮到你!

问题内容

尝试使用以下代码解析时间戳字符串时,出现错误 hour out of range

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())
    }
}

演示: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"

布局中的时区偏移量应为 -0700 而不是 +0530

layout := "2006-01-02 15:04:05 -0700"

好了,本文到此结束,带大家了解了《处理 Go 中 time.Parse(layout, value) 函数的“小时字段值范围溢出”》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>