将Python解析为Golang - DateTime

3
我一直在尝试从Python的datetime输出中获取一个特定的字符串(2006-01-02T15:04:05.000Z),以便我可以轻松地在Golang中使用time.Parse解析它。
我尝试了以下代码(在Python中):
datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%S.%fZ')

这将给我类似于这样的东西:"2018-11-06T22:48:50.002750Z"
当我尝试在Golang中解析它时,代码如下:
dtLayout := "2006-01-02T15:04:05.000Z"
dateStr := "2018-11-06T22:48:50.002750Z"

parsedDate, err := time.Parse(dtLayout, dateStr)
if err != nil {
    if err != nil {
        log.Printf("error: %v", err)
    }

我得到了这个错误:

2018/11/06 16:49:11 错误:将时间“2018-11-06T22:48:50.002750Z”解析为“2006-01-02T15:04:05.000Z”时出错:无法将“750Z”解析为“Z”

可能有一种简单的方法只使用毫秒,但我很固执,感觉离成功很近。
1个回答

5

小数秒中的零必须精确匹配字符数量,如您的错误所示,在750Z之后的部分与格式字符串的相应部分不匹配。

您可以添加正确数量的零,例如"2006-01-02T15:04:05.000000Z",或使用9作为更灵活的格式。

dtLayout := "2006-01-02T15:04:05.9Z"

https://play.golang.org/p/dyC0OXUnhhu


9!这就是我一直在寻找的解决方案。非常感谢,它完美地运行而且不会让人感到太糟糕:D - M.Traynor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接