从不完整的字符串解析 golang 时间对象

标签 parsing time go rfc3339

我有以下日期字符串:2017-09-04T04:00:00Z

我需要将此字符串解析为 golang 时间,以便在我的应用程序中获得统一的数据。这是到目前为止的代码:

parsedTime := "2017-09-04T04:00:00Z"
test, err := time.Parse(time.RFC3339, parsedTime)
check(err)
fmt.Println(test)

当我尝试运行该程序时出现以下错误:

": extra text: 0:00 +0000 UTC parsing time "2017-09-04T04:00:00Z

我怎样才能添加它正在寻找的额外文本或让解析器停止寻找 Z?

我也试过以下方法:

parsedTime := "2017-09-04T04:00:00Z"
test, err := time.Parse("2006-01-02T03:04:05Z", parsedTime)
check(err)
fmt.Println(test)

返回以下错误:

": extra text: 017-09-04T04:00:00Z

最佳答案

您使用的两种格式都适用于当前版本的 go:https://play.golang.org/p/Typyq3Okrd

var formats = []string{
    time.RFC3339,
    "2006-01-02T03:04:05Z",
}

func main() {
    parsedTime := "2017-09-04T04:00:00Z"

    for _, format := range formats {
        if test, err := time.Parse(format, parsedTime); err != nil {
            fmt.Printf("ERROR: format %q resulted in error: %v\n", format, err)
        } else {
            fmt.Printf("format %q yielded %s\n", format, test)
        }
    }
}

您能否提供一个工作示例来说明您的问题?你可以使用go playground对于可共享的片段。

关于从不完整的字符串解析 golang 时间对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36322404/

相关文章:

ios - Swift - 解析嵌套 JSON 对象中的数组不起作用

python - 使用 Python 查找和更改 XML 文件中的属性

docker - 如何让两个运行 flask 服务和 golang 服务的 docker 容器相互通信?

java - JAXB Unmarshaller - 意外的元素异常

image - 我如何在 React Native 中实际使用 Image.capInsets?

javascript - PHP/Javascript - 从巨大的日志文件中实时读取添加的行

html - 计时器 + Aframe : How to use setTimeOut for Aframe. 寄存器组件 ("...")

python - 通过导入时间加快漂亮汤的速度(抓取太多不相关的数据)

go - grpc 生成的 stub 线程安全吗?

与 Jenkins 集成 Go 覆盖率报告