首页 > 后端开发 > Golang > 如何在 Go 中解析像 Tar 输出这样的非标准时间戳?

如何在 Go 中解析像 Tar 输出这样的非标准时间戳?

Susan Sarandon
发布: 2024-12-19 13:26:32
原创
726 人浏览过

How to Parse Non-Standard Timestamps like Tar's Output in Go?

Go 中的日期解析

Go 中解析时间戳可能是一个挑战,特别是在使用非标准格式时。其中一种场景涉及解析 tar 生成的时间戳,例如“2011-01-19 22:15”。

使用 time.Parse 函数解析此时间戳的初始尝试失败,并显示错误消息“解析时间” “2011-01-19 22:15”:月份超出范围。”此错误源于以下事实:time.Parse 使用的默认时间格式需要与 tar 时间戳不同的标准格式。

要解决此问题,请查阅 Go time 包文档以获取有关定义自定义日期的说明格式。根据文档,标准时间格式为“Mon Jan 2 15:04:05 MST 2006”。要创建自定义格式,只需将标准格式的元素映射到所需格式的相应元素即可。

例如,要解析 tar 时间戳“2011-01-19 22:15”,请使用以下代码:

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()))
}
登录后复制

输出:

Wed Jan 19 22:15:00 UTC 2011
登录后复制

使用此自定义格式,time.Parse 函数将正确解析 tar 时间戳并返回 UTC 格式的等效 time.Time 对象。

以上是如何在 Go 中解析像 Tar 输出这样的非标准时间戳?的详细内容。更多信息请关注PHP中文网其他相关文章!

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