mirror of
https://github.com/araddon/dateparse.git
synced 2025-09-18 04:48:17 +08:00
Support git log format (Thu Apr 7 15:13:13 2005 -0700)
Adapt commit 99d9682a1c
from https://github.com/araddon/dateparse/pull/92 by https://github.com/jiangxin (merge timeWsYearOffset case and validate format)
This commit is contained in:
30
parseany.go
30
parseany.go
@@ -122,6 +122,7 @@ const (
|
||||
timeWsOffsetColonAlpha
|
||||
timeWsOffsetColon
|
||||
timeWsYear // 16
|
||||
timeWsYearOffset
|
||||
timeOffset
|
||||
timeOffsetColon
|
||||
timeOffsetColonAlpha
|
||||
@@ -997,13 +998,14 @@ iterRunes:
|
||||
}
|
||||
|
||||
case dateAlpha:
|
||||
// dateAlphaWS
|
||||
// dateAlphaWs
|
||||
// Mon Jan _2 15:04:05 2006
|
||||
// Mon Jan _2 15:04:05 MST 2006
|
||||
// Mon Jan 02 15:04:05 -0700 2006
|
||||
// Mon Jan 02 15:04:05 2006 -0700
|
||||
// Mon Aug 10 15:44:11 UTC+0100 2015
|
||||
// Fri Jul 03 2015 18:04:07 GMT+0100 (GMT Daylight Time)
|
||||
// dateAlphaWSDigit
|
||||
// dateAlphaWsDigit
|
||||
// May 8, 2009 5:57:51 PM
|
||||
// oct 1, 1970
|
||||
// dateAlphaWsMonth
|
||||
@@ -1135,6 +1137,7 @@ iterRunes:
|
||||
// Mon Jan _2 15:04:05 2006
|
||||
// Mon Jan _2 15:04:05 MST 2006
|
||||
// Mon Jan 02 15:04:05 -0700 2006
|
||||
// Mon Jan 02 15:04:05 2006 -0700
|
||||
// Fri Jul 03 2015 18:04:07 GMT+0100 (GMT Daylight Time)
|
||||
// Mon Aug 10 15:44:11 UTC+0100 2015
|
||||
// dateAlphaWsDigit
|
||||
@@ -1663,7 +1666,9 @@ iterRunes:
|
||||
// timeWsOffsetColonAlpha
|
||||
// 00:12:00 +00:00 UTC
|
||||
// timeWsYear
|
||||
// 00:12:00 2008
|
||||
// 00:12:00 2008
|
||||
// timeWsYearOffset
|
||||
// 00:12:00 2008 -0700
|
||||
// timeZ
|
||||
// 15:04:05.99Z
|
||||
switch r {
|
||||
@@ -1688,6 +1693,23 @@ iterRunes:
|
||||
p.yeari = i
|
||||
}
|
||||
}
|
||||
case timeWsYear:
|
||||
// timeWsYearOffset
|
||||
// 00:12:00 2008 -0700
|
||||
switch r {
|
||||
case ' ':
|
||||
p.yearlen = i - p.yeari
|
||||
if !p.setYear() {
|
||||
return p, unknownErr(datestr)
|
||||
}
|
||||
case '+', '-':
|
||||
p.offseti = i
|
||||
p.stateTime = timeWsYearOffset
|
||||
default:
|
||||
if !unicode.IsDigit(r) {
|
||||
return p, unknownErr(datestr)
|
||||
}
|
||||
}
|
||||
case timeWsAlpha:
|
||||
// 06:20:00 UTC
|
||||
// 06:20:00 UTC-05
|
||||
@@ -2049,7 +2071,7 @@ iterRunes:
|
||||
if p.mslen >= 10 {
|
||||
return p, fmt.Errorf("fractional seconds in %q too long near %q", datestr, string(p.datestr[p.msi:p.mslen]))
|
||||
}
|
||||
case timeOffset, timeWsOffset:
|
||||
case timeOffset, timeWsOffset, timeWsYearOffset:
|
||||
switch len(p.datestr) - p.offseti {
|
||||
case 3:
|
||||
// 19:55:00+01 (or 19:55:00 +01)
|
||||
|
Reference in New Issue
Block a user