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"
stdISO8601ColonTZ = "Z07:00"
stdNumTZ = "-0700"
stdNumShortTZ = "-07"
stdNumColonTZ = "-07:00"
)
因此,只要您的格式指定年份,就应该使用“ 06”或“ 2006”来完成,以“ 05”或“ 5”来指定秒,并在“ MST”,“ Z0700”,“ Z07:00”中指定时区”,“-0700”,“-07”或“ -07:00”。如果您引用常量列表,则可以将需要解析的任何标准格式组合在一起。
例如,如果要以“通用日志格式”(Apache为其日志文件使用的格式)解析日期/时间,可以通过将以下字符串传递time.Parse()
为layout参数来实现。
"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")