Golang日期解析

时间:2017-07-13 07:47:12

标签: date parsing go

我有一个像这样的字符串

Fri, 3 Mar 2017 13:08:54 +0100

我需要在 Golang 中的string对象中转换此time.Time

布局似乎是RFC1123Z,所以我尝试了这种方式

(RFC1123Z = "Mon, 02 Jan 2006 15:04:05 -0700" // RFC1123 with numeric zone)

d := "Thu, 2 Mar 2017 10:44:13 +0100"
da, _ := time.Parse(time.RFC1123Z, d)
fmt.Println(da)

但我明白了:

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

有什么问题?

1 个答案:

答案 0 :(得分:0)

要成为time.RFC1123Z,该日必须为02而非2

package main

import (
    "fmt"
    "time"
)

func main() {
    d := "Thu, 02 Mar 2017 10:44:13 +0100"
    da, _ := time.Parse(time.RFC1123Z, d)
    fmt.Println(da)
}

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

如果您无法更改源时间字符串,您可以使用Mon, 2 Jan 2006 15:04:05 -0700格式解析它:

da, _ := time.Parse("Mon, 2 Jan 2006 15:04:05 -0700", d)

参考文献: