首页 > 后端开发 > Golang > 如何在 Go 中正确解析非标准日期和时间?

如何在 Go 中正确解析非标准日期和时间?

Patricia Arquette
发布: 2024-12-09 09:28:05
原创
323 人浏览过

How to Correctly Parse Non-Standard Dates and Times in Go?

在 Go 中解析日期

使用时间戳时,通常会遇到标准 Unix 纪元时间戳以外的格式。例如,tar 生成格式为 2011-01-19 22:15 的时间戳。为了在 Go 中解析此类时间戳,我们求助于 time.Parse 函数。

但是,只需调用 time.Parse("2011-01-19 22:15", "2011-01-19 22:15 ") 将导致错误:“解析时间 2011-01-19 22:15: 月份超出范围”。要理解原因,我们需要深入研究 time.Parse 函数的非常规 API。

格式化字符串怪癖

time.Parse 函数需要一个指定格式字符串如何解释输入时间戳。出于我们的目的,我们使用 2006-01-02 15:04 格式。此字符串遵循 Go time 包文档中规定的约定:

  • Mon Jan 2 15:04:05 MST 2006 (MST is GMT-0700)

To定义我们自己的格式,我们只需要指定标准格式的元素如何在我们的自定义格式中出现。例如,在我们的例子中,结果格式将是 2006-01-02 15:04。

解析时间戳

使用我们的格式化字符串,我们现在可以解析时间戳:

import "time"

func main() {
    t, err := time.Parse("2006-01-02 15:04", "2011-01-19 22:15")
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println(t)
}
登录后复制

这将正确解析时间戳并显示结果time.时间对象。

以上是如何在 Go 中正确解析非标准日期和时间?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板