将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
我将 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