我已经 created_date
列作为字符串,它的值类似于 2018-10-04 15:42:19.000404667 +0000 UTC m=+103.387519062
我从mongo
得到的db 列,现在我将其插入 mysql
表,当然是 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
的 time
包,但仍在深入研究,我在这里缺少什么,或者我在解析错误 date
类型。
谢谢。
最佳答案
除非已知 m=...
部分是常量(在这种情况下,您应该按原样将其包含在格式字符串中),您必须将其从输入字符串中删除在将其传递给 time.Parse()
之前。没有办法告诉 time.Parse()
它应该忽略输入的一部分(除非它总是相同的字符串)。
注意您应该提供一个完整的时间说明符作为格式,而不仅仅是“2006-02-01”,因为如果您不这样做,库将以自己的方式扩展它以包括小时、分钟和秒——这不一定是您想要的方式(在您的情况下,它会自动添加 T15:04:05.999999999Z07:00
- 但您的输入数据在日期后包含一个空格,而不是 T
,所以它不会匹配)。在您的情况下(根据您的示例输入数据判断),格式字符串应如下所示:2006-02-01 15:04:05.000000000 -0700 MST
关于go - 用时间包的parse方法将mongodb字段值 "date"解析成golang,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52741860/