【问题标题】:Time format issue with go languagego语言的时间格式问题
【发布时间】:2021-11-27 22:34:54
【问题描述】:

我使用的是 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” 在去操场上运行相同时,输出为“2009-11-10 23:00:00 +0000 UTC”

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

【问题讨论】:

  • 您忽略了time.Parse 返回的错误。不要忽略错误。
  • 只是要注意重新。 “我正在使用 go 14.4”-我假设您的意思是 1.14.4,这使您过时了大约两年。您绝对应该考虑升级当前的安全和性能修复。

标签: go time datetime-conversion


【解决方案1】:

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

由于您使用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 的列表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-27
    • 2011-06-05
    • 2011-08-28
    • 1970-01-01
    • 1970-01-01
    • 2021-09-26
    • 2016-03-29
    • 2015-10-05
    相关资源
    最近更新 更多