我正在尝试Google OAuth2,并且在刷新令牌的有效期内遇到了此问题。它来自2018-10-15 15:42:37.5989253 +1100 AEDT m=+3610.688917401
我知道这是一种时间格式,但是我在任何地方都找不到有关m=+
的任何信息。 Google内部使用它吗?我试图用time.RFC3339
来解析它,但是您可以猜到,它忽略了m=+
。它说
解析时间“ 2018-10-15 15:42:37.5989253 +1100 AEDT m = + 3610.688917401“作为” 2006-01-02T15:04:05Z07:00“:无法解析” 15:42:37.5989253 +1100 AEDT m = + 3610.688917401“为” T“
那么时间字符串中的m=+
是什么?
答案 0 :(得分:1)
m=±<value>
是monotonic clock秒读。
以下是time.Time.String
documentation对此的解释:
如果时间具有单调时钟读数,则返回的字符串包括最后一个字段“ m =±”,其中value是单调时钟读数,格式为秒的十进制数。
Afaik,golang不提供用于解析单调时钟的布局,因此我认为可以安全地删除它。
dateFormat := "2006-01-02 15:04:05.999999999 -0700 MST"
dateString := "2018-10-15 15:42:37.5989253 +1100 AEDT m=+3610.688917401"
t, err := time.Parse(dateFormat, strings.Split(dateString, " m=")[0])
if err != nil {
fmt.Println(err)
os.Exit(0)
}
fmt.Println(t) // 2018-10-15 15:42:37.5989253 +1100 AEDT
从go 1.9开始,调用.String()
将生成日期字符串输出,其中包含单调时钟。因此,我建议尝试使用.Format()
代替.String()
正常使用。单调时钟信息仅对调试有用。