Golang奇怪的格式日期

Pao*_*olo 1 format datetime date go

我必须使用以下格式转换字符串日期:

Thu, 01 Nov 2018 14:20:34 +0700
Run Code Online (Sandbox Code Playgroud)

..进入这种格式:

2018-11-01 14:20:34
Run Code Online (Sandbox Code Playgroud)

我用以下代码尝试了它:

dt_pub, err := time.Parse("RFC1123", Thu, 01 Nov 2018 14:20:34 +0700)
dt_pub.Format("2006-01-02 15:04:05")
Run Code Online (Sandbox Code Playgroud)

但遗憾的是,结果如下:

0001-01-01 00:00:00 +0000 UTC
Run Code Online (Sandbox Code Playgroud)

pet*_*rSO 5

请参阅打包时间.

0001-01-01 00:00:00 +0000 UTC是零的值time.Time.发生解析错误时返回零值.

检查错误.使用time.RFC1123Z(带有数字区域的RFC1123)布局进行解析以匹配您的输入.例如,

package main

import (
    "fmt"
    "time"
)

func main() {
    dt_pub, err := time.Parse(time.RFC1123Z, "Thu, 01 Nov 2018 14:20:34 +0700")
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println(dt_pub)
    fmt.Println(dt_pub.Format("2006-01-02 15:04:05"))
}
Run Code Online (Sandbox Code Playgroud)

游乐场:https://play.golang.org/p/rIoRVWArhfx

输出:

2018-11-01 14:20:34 +0700 +0700
2018-11-01 14:20:34
Run Code Online (Sandbox Code Playgroud)