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.
列表
我使用的是 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.