}
return layout[0:i], stdDay, layout[i+1:]
- case '_': // _2
+ case '_': // _2, _2006
if len(layout) >= i+2 && layout[i+1] == '2' {
+ //_2006 is really a literal _, followed by stdLongYear
+ if len(layout) >= i+5 && layout[i+1:i+5] == "2006" {
+ return layout[0 : i+1], stdLongYear, layout[i+5:]
+ }
return layout[0:i], stdUnderDay, layout[i+2:]
}
}
}
}
+
+// Issue 11334.
+func TestUnderscoreTwoThousand(t *testing.T) {
+ format := "15:04_20060102"
+ input := "14:38_20150618"
+ time, err := Parse(format, input)
+ if err != nil {
+ t.Error(err)
+ }
+ if y, m, d := time.Date(); y != 2015 || m != 6 || d != 18 {
+ t.Errorf("Incorrect y/m/d, got %d/%d/%d", y, m, d)
+ }
+ if h := time.Hour(); h != 14 {
+ t.Errorf("Incorrect hour, got %d", h)
+ }
+ if m := time.Minute(); m != 38 {
+ t.Errorf("Incorrect minute, got %d", m)
+ }
+}