我正在尝试使用 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.AE+07:00”:35.AE+1059210DT1001 3610.688917401" 为 "T"
那么m=+  时间字符串中的这个是什么?
nov*_*ung 10
该m=±<value>是单调的时钟在二读。
来自time.Time.String文档的解释:
如果时间具有单调时钟读数,则返回的字符串包括最后一个字段“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
Run Code Online (Sandbox Code Playgroud)
从go 1.9开始,调用.String()将生成带有单调时钟的日期字符串输出。所以我建议尝试使用.Format()正常使用而不是.String(). 单调时钟信息仅用于调试目的。
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           3292 次  |  
        
|   最近记录:  |