Skip to content

Commit ab2167c

Browse files
committed
Add support for dates of the form "yyyy mmm dd" where mmm is alpha
Ref: araddon/pull/142
1 parent dc2577d commit ab2167c

File tree

2 files changed

+39
-3
lines changed

2 files changed

+39
-3
lines changed

parseany.go

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,8 @@ const (
9595
dateWeekdayAbbrevComma
9696
dateDigitDashDigit
9797
dateDigitDashDigitDash
98+
dateYearWs
99+
dateYearWsMonthWs
98100
)
99101
const (
100102
// Time state
@@ -398,7 +400,13 @@ iterRunes:
398400
// 02 Jan 2018 23:59:34
399401
// 12 Feb 2006, 19:17
400402
// 12 Feb 2006, 19:17:22
401-
if i == 6 {
403+
// 2013 Jan 06 15:04:05
404+
if i == 4 {
405+
p.yearlen = i
406+
p.moi = i + 1
407+
p.setYear()
408+
p.stateDate = dateYearWs
409+
} else if i == 6 {
402410
p.stateDate = dateDigitSt
403411
} else {
404412
p.stateDate = dateDigitWs
@@ -758,8 +766,32 @@ iterRunes:
758766
break iterRunes
759767
}
760768
case dateDigitWsMolong:
761-
// 18 January 2018
762-
// 8 January 2018
769+
// 18 January 2018
770+
// 8 January 2018
771+
772+
case dateYearWs:
773+
// 2013 Jan 06 15:04:05
774+
if r == ' ' {
775+
p.molen = i - p.moi
776+
p.set(p.moi, "Jan")
777+
p.dayi = i + 1
778+
p.stateDate = dateYearWsMonthWs
779+
}
780+
case dateYearWsMonthWs:
781+
// 2013 Jan 06 15:04:05
782+
switch r {
783+
case ',':
784+
p.daylen = i - p.dayi
785+
p.setDay()
786+
i++
787+
p.stateTime = timeStart
788+
break iterRunes
789+
case ' ':
790+
p.daylen = i - p.dayi
791+
p.setDay()
792+
p.stateTime = timeStart
793+
break iterRunes
794+
}
763795

764796
case dateDigitChineseYear:
765797
// dateDigitChineseYear
@@ -2033,6 +2065,8 @@ iterRunes:
20332065
// Mon, 02 Jan 2006 15:04:05 MST
20342066
return p, nil
20352067

2068+
case dateYearWsMonthWs:
2069+
return p, nil
20362070
}
20372071

20382072
return nil, unknownErr(datestr)

parseany_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,8 @@ var testInputs = []dateTest{
154154
{in: "07 Feb 2004 09:07", out: "2004-02-07 09:07:00 +0000 UTC"},
155155
{in: "7 Feb 2004 9:7:8", out: "2004-02-07 09:07:08 +0000 UTC"},
156156
{in: "07 Feb 2004 09:07:08.123", out: "2004-02-07 09:07:08.123 +0000 UTC"},
157+
// yyyy mmm dd
158+
{in: "2013 May 02 11:37:55", out: "2013-05-02 11:37:55 +0000 UTC"}, // https://github.com/araddon/dateparse/issues/141
157159
// dd-mon-yyyy 12 Feb 2006, 19:17:08 GMT
158160
{in: "07 Feb 2004, 09:07:07 GMT", out: "2004-02-07 09:07:07 +0000 UTC"},
159161
// dd-mon-yyyy 12 Feb 2006, 19:17:08 +0100

0 commit comments

Comments
 (0)