go - GO 时间字符串中的“m=+”是什么?
问题描述
我正在尝试使用 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=+
时间字符串中的这个是什么?
解决方案
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
从go 1.9开始,调用.String()
将生成带有单调时钟的日期字符串输出。所以我建议尝试使用.Format()
正常使用而不是.String()
.
单调时钟信息仅用于调试目的。
推荐阅读
- java - 如何在 MongoDB 中的 dhe 文档中使用其他数组的计数来查找不同的值
- javascript - 根据输入元素动态修改Vue实例中的数据
- canvas - Konva/Canvas 背景模糊/磨砂玻璃效果
- angular - 为什么我的删除功能第二次在我的桌子上不起作用
- c++ - C ++ - 计算每边长度小于N的所有可能的不等边三角形
- sql - Group by 只返回一行
- reactjs - 更改表中的数据时,ReactJS 数据表不显示值
- terraform-provider-azure - Oozie 配置为使用 SQL Server,但未定义所有属性
- javascript - 使用状态 React Native 更改数组的值
- python - 不同批次中的 LSTM 相同句子在填充序列时预测不同的分数