diff --git a/parseany.go b/parseany.go index 073f320..81de181 100644 --- a/parseany.go +++ b/parseany.go @@ -574,7 +574,12 @@ iterRunes: } if t.IsZero() { if secs, err := strconv.ParseInt(datestr, 10, 64); err == nil { - t = time.Unix(secs, 0) + if secs < 0 { + // Now, for unix-seconds we aren't going to guess a lot + // nothing before unix-epoch + } else { + t = time.Unix(secs, 0) + } } } if !t.IsZero() { diff --git a/parseany_test.go b/parseany_test.go index 7a35dca..29bc70d 100644 --- a/parseany_test.go +++ b/parseany_test.go @@ -468,6 +468,9 @@ func TestParse(t *testing.T) { _, err = ParseAny("138421636711122233311111") // too many digits assert.NotEqual(t, nil, err) + + _, err = ParseAny("-1314") + assert.NotEqual(t, nil, err) } func testDidPanic(datestr string) (paniced bool) {