go语言的时间格式问题

Time format issue with go language

我使用的是 go 14.4 版本,在转换时间时发现了一个特殊问题。所以我需要将当前时间转换为这种格式 2006-01-02T15:04:05Z 并使用下面的代码

currentTime := time.Now().Format(time.RFC3339)
currentDateTime, _ := time.Parse("2006-01-02T15:04:05Z", currentTime)

但输出为“0001-01-01 00:00:00 +0000 UTC” 当 运行 在 go playground 中相同时,输出为“2009-11-10 23:00:00 +0000 UTC”

知道如何解决这个问题吗?

首先不要忽略错误 - 这就是你得到“零”时间的原因 - 因为时间字符串没有被正确解析。

由于您使用 RFC3339 来格式化时间字符串:

currentTime := time.Now().Format(time.RFC3339)

简单地使用相同的格式time.RFC3339解析回来:

//currentDateTime, err := time.Parse("2006-01-02T15:04:05Z", currentTime) // wrong format
currentDateTime, err := time.Parse(time.RFC3339, currentTime)

if err != nil {
    // handle error
}

仅供参考,这里是 time 包的 format strings.

列表