Date Go language time.Parse()用于无时区的时间戳
在Go中,我试图使用Date Go language time.Parse()用于无时区的时间戳,date,datetime,go,Date,Datetime,Go,在Go中,我试图使用time包中的函数将字符串时间戳转换为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
time
包中的函数将字符串时间戳转换为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()
,或者出于某种原因我的用例不受支持 您需要的格式字符串应为:
Mon Jan 02 15:04:05 MST 2006
也就是说,使用
MST
表示时区,使用15
表示小时,如链接解析函数中所述。在这种情况下,您可以使用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)
}