Golang奇怪的格式日期

时间:2018-10-29 07:46:13

标签: date datetime go format

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

Thu, 01 Nov 2018 14:20:34 +0700

..转换为以下格式:

2018-11-01 14:20:34

我尝试了以下代码:

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

但是不幸的是,结果看起来像这样:

0001-01-01 00:00:00 +0000 UTC

1 个答案:

答案 0 :(得分:5)

请参阅转到package time

0001-01-01 00:00:00 +0000 UTCtime.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"))
}

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

输出:

2018-11-01 14:20:34 +0700 +0700
2018-11-01 14:20:34