我只想将日期值解析为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("")
}
输出是这样的:
Format: 2006-12-01
parsing time "2016-03-31" as "2006-12-01": cannot parse "-31" as "2"
答案 0 :(得分:2)
这些是在Time.Format和Time.Parse中使用的预定义布局。 布局中使用的参考时间是特定时间:
Mon Jan 2 15:04:05 MST 2006
这是Unix时间1136239445.由于MST是GMT-0700,所以参考 时间可以被认为是
01/02 03:04:05PM '06 -0700
要定义自己的格式,请记下参考时间 看起来像格式化你的方式;看到像ANSIC这样的常量值, 例如StampMicro或Kitchen。
将format := "2006-01-02"
用于yyyy-mm-dd。