2018-11-06 22:58
浏览 45


I've been attempting to get a specific string output from pyhtons datetime (2006-01-02T15:04:05.000Z), so that I can easily parse it in golang using time.Parse.

I tried (in python)


Which will give me something like this: "2018-11-06T22:48:50.002750Z"

And when I try to parse it like this in 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)

I get this error:

2018/11/06 16:49:11 error: parsing time "2018-11-06T22:48:50.002750Z" as "2006-01-02T15:04:05.000Z": cannot parse "750Z" as "Z"

There's probably an easy way to do this using just milliseconds, but I'm stubborn and feel like I'm close.

图片转代码服务由CSDN问答提供 功能建议

我一直在尝试从pyhtons datetime中获取特定的字符串输出 (2006-01-02T15:04 :05.000Z),这样我就可以使用time.Parse在golang中轻松解析它。


  datetime.utcnow()。strftime('%Y-%m-%dT%H  :%M:%S.%fZ')

这会给我这样的信息:“ 2018-11-06T22:48:50.002750Z”


  dtLayout:=“ 2006-01-02T15:04:05.000Z”  
dateStr:=“ 2018-11-06T22:48:50.002750Z” 
parsedDate,err:= time.Parse(dtLayout,dateStr)
if err!= nil {
如果err!= nil {
日志 .Printf(“错误:%v”,错误)


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


  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • dsolwotv00116
    dsolwotv00116 2018-11-06 23:09

    Zeros in the fractional seconds must match the number of characters exactly, and as your error states, the portion after 750Z doesn't match the corresponding portion of the format string.

    You can add the correct number of zeros, like "2006-01-02T15:04:05.000000Z", or use 9 as a more flexible format.

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

    点赞 评论