【问题标题】:Golang strange format dateGolang奇怪的格式日期
【发布时间】:2019-04-02 02:46:16
【问题描述】:

我必须用这种格式转换一个字符串日期:

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

【问题讨论】:

  • 错误说明了什么?

标签: date datetime go format


【解决方案1】:

见 Go 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-15
    • 1970-01-01
    相关资源
    最近更新 更多