Go:如何仅解析日期到时间。时间?

Azi*_*ize 9 go

我只想将日期值解析为time.Time. 例如,我有以下格式的日期:2016-03-31,我想解析它,例如:time.Parse(FORMAT, "2016-03-31")

但它总是失败。

用于仅解析此格式的日期的正确格式字符串是什么?

我有下面的代码作为示例,它也在操场上:https ://play.golang.org/p/0MNLr9emZd

package main

import (
    "fmt"
    "time"
)

var dateToParse = "2016-03-31"

func main() {
    format := "2006-12-01"
    parseDate(format)
}

func parseDate(format string) {
    t, err := time.Parse(format, dateToParse)
    if err != nil {
        fmt.Println("Format:", format)
        fmt.Println(err)
        fmt.Println("")
        return
    }
    fmt.Println("Works Format:", format)
    fmt.Println(t)
    fmt.Println("")
}
Run Code Online (Sandbox Code Playgroud)

输出是这样的:

Format: 2006-12-01
parsing time "2016-03-31" as "2006-12-01": cannot parse "-31" as "2"
Run Code Online (Sandbox Code Playgroud)

pet*_*rSO 5

打包时间

这些是在 Time.Format 和 Time.Parse 中使用的预定义布局。布局中使用的参考时间是具体时间:

Mon Jan 2 15:04:05 MST 2006
Run Code Online (Sandbox Code Playgroud)

这是 Unix 时间 1136239445。由于 MST 是 GMT-0700,所以参考时间可以认为是

01/02 03:04:05PM '06 -0700
Run Code Online (Sandbox Code Playgroud)

要定义您自己的格式,请写下参考时间按照您的方式格式化的样子;例如,请参阅 ANSIC、StampMicro 或 Kitchen 等常量的值。

用于format := "2006-01-02"yyyy-mm-dd。