time.Parse 正在寻找一些关键值。
通过改变:
test, err := time.Parse("10/15/1983", "10/15/1983")
到
test, err := time.Parse("01/02/2006", "10/15/1983")
解析器会识别它。
这是操场上修改后的代码。
package main
import "fmt"
import "time"
func main() {
test, err := time.Parse("01/02/2006", "10/15/1983")
if err != nil {
panic(err)
}
fmt.Println(test)
}
您可以利用src/pkg/time/format.go文件中的常量列表来创建自己的解析格式。
const (
stdLongMonth = "January"
stdMonth = "Jan"
stdNumMonth = "1"
stdZeroMonth = "01"
stdLongWeekDay = "Monday"
stdWeekDay = "Mon"
stdDay = "2"
stdUnderDay = "_2"
stdZeroDay = "02"
stdHour = "15"
stdHour12 = "3"
stdZeroHour12 = "03"
stdMinute = "4"
stdZeroMinute = "04"
stdSecond = "5"
stdZeroSecond = "05"
stdLongYear = "2006"
stdYear = "06"
stdPM = "PM"
stdpm = "pm"
stdTZ = "MST"
stdISO8601TZ = "Z0700" // prints Z for UTC
stdISO8601ColonTZ = "Z07:00" // prints Z for UTC
stdNumTZ = "-0700" // always numeric
stdNumShortTZ = "-07" // always numeric
stdNumColonTZ = "-07:00" // always numeric
)
因此,只要您的格式指定年份,就应该使用“06”或“2006”,秒由“05”或“5”指定,时区指定为“MST”、“Z0700”、“Z07:00” ”、“-0700”、“-07”或“-07:00”。如果您引用常量列表,您可能会将需要解析的任何标准格式放在一起。
例如,如果您想解析通用日志格式(Apache 用于其日志文件的格式)中的日期/时间,您可以通过将以下字符串time.Parse()
作为布局参数传递给来实现。
"02/Jan/2006:15:04:05 -0700"
“02”表示月份字段,“Jan”表示月份名称字段,“2006”表示年份字段,“15”表示 24 小时格式的小时字段,“04”表示分钟字段, “05”表示秒字段,“-0700”表示时区字段。
该格式将解析当前 PST 时间:31/Dec/2012:15:32:25 -0800
所以time.Parse()
调用看起来像这样:
test, err := time.Parse("02/Jan/2006:15:04:05 -0700", "31/Dec/2012:15:32:25 -0800")