首页 >后端开发 >Golang >如何在 Go 的 time.Parse 函数中正确解析时间戳?

如何在 Go 的 time.Parse 函数中正确解析时间戳?

Linda Hamilton
Linda Hamilton原创
2024-12-11 07:44:13281浏览

How to Correctly Parse a Timestamp in Go's `time.Parse` Function?

Go 中的日期解析

尝试解析格式为“2011-01-19 22:15”的时间戳,即tar 常用的函数,开发人员在使用 time.Parse 函数时可能会遇到困难。本文旨在提供此问题的解决方案。

以下代码片段演示了使用 time 解析时间戳的失败尝试。解析:

package main

import (
    "fmt"
    "time"
)

func main() {
    var time, error = time.Parse("2011-01-19 22:15", "2011-01-19 22:15")
    if error != nil {
        fmt.Println(error.String())
        return
    }
    fmt.Println(time)
}

此代码失败并显示错误消息“'解析时间“2011-01-19 22:15”:月份超出范围'”。

解决方案在于理解time.Parse的语法和语义。正如 Go time 包文档中所指定的, time.Parse 中使用的默认布局基于标准 Unix 时间格式:

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

地点:

  • 星期一、一月、2 日、15 日、 04、05 分别是月、日、日、时、分、秒的对应值
  • MST 是时区偏移
  • 2006 是年份

要定义自定义布局,开发人员需要确定标准时间如何以其所需的格式显示。例如,要解析“2011-01-19 22:15”时间戳,可以使用以下代码段:

package main

import (
    "fmt"
    "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(time.SecondsToUTC(t.Seconds()))
}

这里,我们指定了一个自定义布局字符串“2006-01-02 15” :04" 以匹配输入时间戳。然后结果以 Unix 时间格式打印。

以上是如何在 Go 的 time.Parse 函数中正确解析时间戳?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn