mirror of
https://github.com/araddon/dateparse.git
synced 2024-11-14 19:39:15 +08:00
adds support for DD.MM.YYYY
This commit is contained in:
parent
9fa48d1ba7
commit
21e4c6c573
63
parseany.go
63
parseany.go
@ -299,6 +299,20 @@ iterRunes:
|
|||||||
p.set(0, "2006")
|
p.set(0, "2006")
|
||||||
} else {
|
} else {
|
||||||
p.stateDate = dateDigitDash
|
p.stateDate = dateDigitDash
|
||||||
|
p.ambiguousMD = true
|
||||||
|
if p.preferMonthFirst {
|
||||||
|
if p.molen == 0 {
|
||||||
|
p.molen = i
|
||||||
|
p.setMonth()
|
||||||
|
p.dayi = i + 1
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if p.daylen == 0 {
|
||||||
|
p.daylen = i
|
||||||
|
p.setDay()
|
||||||
|
p.moi = i + 1
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
case '/':
|
case '/':
|
||||||
// 03/31/2005
|
// 03/31/2005
|
||||||
@ -336,11 +350,20 @@ iterRunes:
|
|||||||
p.setYear()
|
p.setYear()
|
||||||
} else {
|
} else {
|
||||||
p.ambiguousMD = true
|
p.ambiguousMD = true
|
||||||
p.moi = 0
|
if p.preferMonthFirst {
|
||||||
|
if p.molen == 0 {
|
||||||
p.molen = i
|
p.molen = i
|
||||||
p.setMonth()
|
p.setMonth()
|
||||||
p.dayi = i + 1
|
p.dayi = i + 1
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
if p.daylen == 0 {
|
||||||
|
p.daylen = i
|
||||||
|
p.setDay()
|
||||||
|
p.moi = i + 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
case ' ':
|
case ' ':
|
||||||
// 18 January 2018
|
// 18 January 2018
|
||||||
@ -416,7 +439,39 @@ iterRunes:
|
|||||||
p.stateDate = dateDigitDashAlpha
|
p.stateDate = dateDigitDashAlpha
|
||||||
p.moi = i
|
p.moi = i
|
||||||
} else {
|
} else {
|
||||||
return nil, unknownErr(datestr)
|
switch r {
|
||||||
|
case ' ':
|
||||||
|
p.stateTime = timeStart
|
||||||
|
if p.yearlen == 0 {
|
||||||
|
p.yearlen = i - p.yeari
|
||||||
|
p.setYear()
|
||||||
|
} else if p.daylen == 0 {
|
||||||
|
p.daylen = i - p.dayi
|
||||||
|
p.setDay()
|
||||||
|
}
|
||||||
|
break iterRunes
|
||||||
|
case '-':
|
||||||
|
if p.yearlen > 0 {
|
||||||
|
// 2014-07-10 06:55:38.156283
|
||||||
|
if p.molen == 0 {
|
||||||
|
p.molen = i - p.moi
|
||||||
|
p.setMonth()
|
||||||
|
p.dayi = i + 1
|
||||||
|
}
|
||||||
|
} else if p.preferMonthFirst {
|
||||||
|
if p.daylen == 0 {
|
||||||
|
p.daylen = i - p.dayi
|
||||||
|
p.setDay()
|
||||||
|
p.yeari = i + 1
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if p.molen == 0 {
|
||||||
|
p.molen = i - p.moi
|
||||||
|
p.setMonth()
|
||||||
|
p.yeari = i + 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
case dateDigitDashAlpha:
|
case dateDigitDashAlpha:
|
||||||
// 13-Feb-03
|
// 13-Feb-03
|
||||||
@ -967,6 +1022,7 @@ iterRunes:
|
|||||||
break iterRunes
|
break iterRunes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
p.coalesceDate(i)
|
p.coalesceDate(i)
|
||||||
if p.stateTime == timeStart {
|
if p.stateTime == timeStart {
|
||||||
// increment first one, since the i++ occurs at end of loop
|
// increment first one, since the i++ occurs at end of loop
|
||||||
@ -1692,6 +1748,9 @@ iterRunes:
|
|||||||
case dateAlphaWsAlphaYearmaybe:
|
case dateAlphaWsAlphaYearmaybe:
|
||||||
return p, nil
|
return p, nil
|
||||||
|
|
||||||
|
case dateDigitDash:
|
||||||
|
return p, nil
|
||||||
|
|
||||||
case dateDigitSlash:
|
case dateDigitSlash:
|
||||||
// 3/1/2014
|
// 3/1/2014
|
||||||
// 10/13/2014
|
// 10/13/2014
|
||||||
|
Loading…
Reference in New Issue
Block a user