Skip to content

Commit ebfdb9c

Browse files
author
Daniel Ferstay
committed
Add support for dates of the form "yyyy mmm dd" where mmm is an alpha literal
Fixes araddon#141 Signed-off-by: Daniel Ferstay <[email protected]>
1 parent 6b43995 commit ebfdb9c

File tree

2 files changed

+37
-1
lines changed

2 files changed

+37
-1
lines changed

parseany.go

+35-1
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,8 @@ const (
9393
dateAlphaPeriodWsDigit
9494
dateWeekdayComma
9595
dateWeekdayAbbrevComma
96+
dateYearWs
97+
dateYearWsMonthWs
9698
)
9799
const (
98100
// Time state
@@ -388,7 +390,13 @@ iterRunes:
388390
// 02 Jan 2018 23:59:34
389391
// 12 Feb 2006, 19:17
390392
// 12 Feb 2006, 19:17:22
391-
if i == 6 {
393+
// 2013 Jan 06 15:04:05
394+
if i == 4 {
395+
p.yearlen = i
396+
p.moi = i + 1
397+
p.setYear()
398+
p.stateDate = dateYearWs
399+
} else if i == 6 {
392400
p.stateDate = dateDigitSt
393401
} else {
394402
p.stateDate = dateDigitWs
@@ -704,6 +712,30 @@ iterRunes:
704712
// 18 January 2018
705713
// 8 January 2018
706714

715+
case dateYearWs:
716+
// 2013 Jan 06 15:04:05
717+
if r == ' ' {
718+
p.molen = i - p.moi
719+
p.set(p.moi, "Jan")
720+
p.dayi = i + 1
721+
p.stateDate = dateYearWsMonthWs
722+
}
723+
case dateYearWsMonthWs:
724+
// 2013 Jan 06 15:04:05
725+
switch r {
726+
case ',':
727+
p.daylen = i - p.dayi
728+
p.setDay()
729+
i++
730+
p.stateTime = timeStart
731+
break iterRunes
732+
case ' ':
733+
p.daylen = i - p.dayi
734+
p.setDay()
735+
p.stateTime = timeStart
736+
break iterRunes
737+
}
738+
707739
case dateDigitChineseYear:
708740
// dateDigitChineseYear
709741
// 2014年04月08日
@@ -1949,6 +1981,8 @@ iterRunes:
19491981
// Mon, 02 Jan 2006 15:04:05 MST
19501982
return p, nil
19511983

1984+
case dateYearWsMonthWs:
1985+
return p, nil
19521986
}
19531987

19541988
return nil, unknownErr(datestr)

parseany_test.go

+2
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 https://github.com/araddon/dateparse/issues/141
158+
{in: "2013 May 02 11:37:55", out: "2013-05-02 11:37:55 +0000 UTC"},
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)