去解析字符串到时间

时间:2016-01-03 09:03:08

标签: go

我有以下字符串:

Sun, 03 Jan 2016 10:00:07 CET

我想把它解析成时间,但似乎无法弄清楚如何编写格式。

这是我到目前为止所得到的:

layout := "Mon, 01 Jan 03:04:05"
t, _ := time.Parse(layout, "Sun, 03 Jan 2016 10:00:07 CET")
fmt.Println(t)

我得到的输出是:

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

1 个答案:

答案 0 :(得分:3)

首先:你默默地忽略了这个错误,它作为第二个返回值time.Parse返回。我建议适当地处理错误。

其次,让我们看一下time.Parse的文档:

  

Parse解析格式化字符串并返回它所代表的时间值。 布局通过显示如果值为,将如何解释定义为Mon Jan 2 15:04:05 -0700 MST 2006的参考时间来定义格式;它作为输入格式的一个例子。然后对输入字符串进行相同的解释。

time.Parse函数期望其layout参数表示固定的示例日期。因此,为了解析日期Sun, 03 Jan 2016 10:00:07 CET,相应的示例布局字符串应为Mon, 02 Jan 2006 15:04:05 MST

layout := "Mon, 02 Jan 2006 15:04:05 MST"
t, err := time.Parse(layout, "Sun, 03 Jan 2016 10:00:07 CET")
if err != nil {
    // handle the error somehow!
}

fmt.Println(t)