我已经将created_date
列作为字符串和它的值,就像我从2018-10-04 15:42:19.000404667 +0000 UTC m=+103.387519062
db列中得到的mongo
一样,现在将其插入到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)
}
它打印出一些错误,例如:
将时间“ 2018-10-04 15:42:19.000404667 +0000 UTC m = + 103.387519062”解析为“ 2006-01-02T15:04:05.999999999Z07:00”:无法解析“ 15:42:19.000404667 +0000 UTC m = + 103.387519062“为” T“
我尝试使用const
包中的其他time
包,但仍在研究其中,这是我所缺少的,还是我在解析错误的date
类型。
谢谢。
答案 0 :(得分:1)
除非已知m=...
部分是常量(在这种情况下,应按原样将其包括在格式字符串中),否则必须先将其从输入字符串中剥离,然后再传递给{{1 }}。无法告诉time.Parse()
应该忽略输入的一部分(除非它始终是相同的字符串)。
请注意,您应该提供完整的时间说明符作为格式,而不仅仅是“ 2006-02-01”,因为如果您不这样做,该库将以其自己的方式扩展它,以包括小时,分钟和秒-不一定是您想要的方式(在您的情况下,它会自动添加time.Parse()
-但您输入的数据在日期后包含空格,而不是T15:04:05.999999999Z07:00
,因此不会匹配)。就您而言(根据示例输入数据判断),格式字符串应如下所示:T