diff --git a/parseany.go b/parseany.go index 66f996d..4ef312f 100644 --- a/parseany.go +++ b/parseany.go @@ -301,6 +301,12 @@ iterRunes: } else { return time.Time{}, err } + } else if len(datestr) >= len("1384216367189") { + if miliSecs, err := strconv.ParseInt(datestr, 10, 64); err == nil { + return time.Unix(0, miliSecs*1000*1000), nil + } else { + return time.Time{}, err + } } else { if secs, err := strconv.ParseInt(datestr, 10, 64); err == nil { return time.Unix(secs, 0), nil diff --git a/parseany_test.go b/parseany_test.go index 957fa55..9564bf8 100644 --- a/parseany_test.go +++ b/parseany_test.go @@ -223,6 +223,11 @@ func TestParse(t *testing.T) { //u.Debug(ts.In(time.UTC).Unix(), ts.In(time.UTC)) assert.T(t, "2012-03-19 10:11:59 +0000 UTC" == fmt.Sprintf("%v", ts.In(time.UTC))) + ts, err = ParseAny("1384216367189") + assert.Tf(t, err == nil, "%v", err) + //u.Debug(ts.In(time.UTC).Unix(), ts.In(time.UTC)) + assert.T(t, "2013-11-12 00:32:47.189 +0000 UTC" == fmt.Sprintf("%v", ts.In(time.UTC))) + } // func TestWIP(t *testing.T) {