在Go中,我尝试使用time
包中的time.Parse()
函数将字符串时间戳转换为Time
对象。我知道Go有一种不常见的方式来表示时间戳的时间格式,方法是提供一个示例,说明它们的参考时间(Mon Jan 2 15:04:05 -0700 MST 2006
)将以您的格式显示。但我仍然遇到错误问题。以下是我的一个时间戳示例:
Tue Nov 27 09:09:29 UTC 2012
以下是我正在制作的电话:
t, err := time.Parse("Mon Jan 02 22:04:05 UTC 2006", "Tue Nov 27 09:09:29 UTC 2012")
所以基本上我在这里所做的就是尝试匹配日名/月名/日号,小时/分钟/秒格式,字符串文字“UTC”和年份格式的格式。请注意,我增加 Go参考格式的小时字段7
(从15
到22
),以说明他们的时间戳是在负7时区,我的所有时间戳都在UTC时区。
我得到的错误是:
parsing time "Tue Nov 27 09:09:29 UTC 2012" as "Mon Jan 02 22:04:05 UTC 2006": cannot parse ":09:29 UTC 2012" as "2"
我在这里做错了什么?我是否误解了如何使用time.Parse()
或者我的用例由于某些原因而不受支持?
答案 0 :(得分:6)
答案 1 :(得分:0)
在这种情况下,您可以使用 time.UnixDate
:
package main
import (
"fmt"
"time"
)
func main() {
t, e := time.Parse(time.UnixDate, "Tue Nov 27 09:09:29 UTC 2012")
if e != nil {
panic(e)
}
fmt.Println(t)
}