From 26dc426a1c8fe06fd4b5d2e39c7ef49607508760 Mon Sep 17 00:00:00 2001 From: allisonmorgan Date: Thu, 2 Oct 2014 14:39:24 -0700 Subject: [PATCH 1/2] Updated to include a few timestamps with different seconds precision --- parseany.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/parseany.go b/parseany.go index e3c8ae4..701b335 100644 --- a/parseany.go +++ b/parseany.go @@ -125,6 +125,9 @@ iterRunes: case ST_DIGITDASHT: // starts digit then dash 02- then T // 2006-01-02T15:04:05Z07:00 // 2006-01-02T15:04:05.999999999Z07:00 + // 2006-01-02T15:04:05.999999999Z + // 2006-01-02T15:04:05.99999999Z + // 2013-06-16T06:57:48.9999999Z if len(datestr) == len("2006-01-02T15:04:05Z07:00") { if t, err := time.Parse("2006-01-02T15:04:05Z07:00", datestr); err == nil { return t, nil @@ -137,6 +140,27 @@ iterRunes: } else { return time.Time{}, err } + } else { + // updated to include timestamps of different precisions + if t, err := time.Parse("2006-01-02T15:04:05.999999999Z", datestr); err == nil { + return t, nil + } else if t, err := time.Parse("2006-01-02T15:04:05.99999999Z", datestr); err == nil { + return t, nil + } else if t, err := time.Parse("2006-01-02T15:04:05.9999999Z", datestr); err == nil { + return t, nil + } else if t, err := time.Parse("2006-01-02T15:04:05.999999Z", datestr); err == nil { + return t, nil + } else if t, err := time.Parse("2006-01-02T15:04:05.99999Z", datestr); err == nil { + return t, nil + } else if t, err := time.Parse("2006-01-02T15:04:05.9999Z", datestr); err == nil { + return t, nil + } else if t, err := time.Parse("2006-01-02T15:04:05.999Z", datestr); err == nil { + return t, nil + } else if t, err := time.Parse("2006-01-02T15:04:05.99Z", datestr); err == nil { + return t, nil + } else { + return time.Time{}, err + } } case ST_DIGITSLASH: // starts digit then slash 02/ // 2014/07/10 06:55:38.156283 From 3d397c53f2225d148dfdb44cade95f974addb1b5 Mon Sep 17 00:00:00 2001 From: Allison Morgan Date: Thu, 2 Oct 2014 14:47:22 -0700 Subject: [PATCH 2/2] Update parseany.go --- parseany.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/parseany.go b/parseany.go index 701b335..66f996d 100644 --- a/parseany.go +++ b/parseany.go @@ -127,7 +127,12 @@ iterRunes: // 2006-01-02T15:04:05.999999999Z07:00 // 2006-01-02T15:04:05.999999999Z // 2006-01-02T15:04:05.99999999Z - // 2013-06-16T06:57:48.9999999Z + // 2006-01-02T15:04:05.9999999Z + // 2006-01-02T15:04:05.999999Z + // 2006-01-02T15:04:05.99999Z + // 2006-01-02T15:04:05.9999Z + // 2006-01-02T15:04:05.999Z + // 2006-01-02T15:04:05.99Z if len(datestr) == len("2006-01-02T15:04:05Z07:00") { if t, err := time.Parse("2006-01-02T15:04:05Z07:00", datestr); err == nil { return t, nil