[英]Go language time.Parse() for timestamps with no timezone
在 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 参考格式的 hours 字段增加了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()
或者我的用例由于某种原因不受支持?
在这种情况下,您可以使用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)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.