将mongodb字段的值"date"用time包的parse方法解析成golang

Parse mongo db field's value "date" into golang with parse method of time package

我将 created_date 列作为字符串,它的值类似于 2018-10-04 15:42:19.000404667 +0000 UTC m=+103.387519062,这是我从 mongo 数据库列中获得的,现在我将其插入到 mysql table当然是string类型的。现在的问题是我无法解析它并格式化它,这里我尝试用下面的代码解析但无法得到解决方案。

tm, err := time.Parse("2006-02-01", "2018-10-04 15:42:19.000404667 +0000 UTC m=+103.387519062")
if err != nil {
    fmt.Println(err)
}

它打印出一些错误,例如:

parsing time "2018-10-04 15:42:19.000404667 +0000 UTC m=+103.387519062" as "2006-01-02T15:04:05.999999999Z07:00": cannot parse " 15:42:19.000404667 +0000 UTC m=+103.387519062" as "T"

我尝试使用不同的 const of time 包,但仍在深入研究,我在这里遗漏了什么,或者我正在使用错误的 date 类型进行解析。

谢谢。

除非已知 m=... 部分是常量(在这种情况下,您应该按原样将其包含在格式字符串中),否则您必须在将其传递给 time.Parse()。没有办法告诉 time.Parse() 它应该忽略输入的一部分(除非它总是相同的字符串)。

注意您应该提供完整的时间说明符作为格式,而不仅仅是“2006-02-01”,因为如果您不这样做,库将以自己的方式扩展它以包括小时、分钟和秒- 这不一定是您想要的方式(在您的情况下它会自动添加 T15:04:05.999999999Z07:00 - 但您的输入数据在日期后包含 space,而不是 T,所以它不会' t 匹配)。在您的情况下(根据您的示例输入数据判断),格式字符串应如下所示:2006-02-01 15:04:05.000000000 -0700 MST