mirror of
https://github.com/araddon/dateparse.git
synced 2024-11-10 11:51:54 +08:00
Merge pull request #4 from allisonmorgan/master
Support timestamps with leading day of week
This commit is contained in:
commit
7c2f96b241
17
parseany.go
17
parseany.go
@ -280,18 +280,33 @@ iterRunes:
|
|||||||
// Mon, 02 Jan 2006 15:04:05 MST
|
// Mon, 02 Jan 2006 15:04:05 MST
|
||||||
// Mon, 02 Jan 2006 15:04:05 -0700
|
// Mon, 02 Jan 2006 15:04:05 -0700
|
||||||
// Monday, 02-Jan-06 15:04:05 MST
|
// Monday, 02-Jan-06 15:04:05 MST
|
||||||
|
// Monday, 02 Jan 2006 15:04:05 -0700
|
||||||
switch {
|
switch {
|
||||||
case r == '-':
|
case r == '-':
|
||||||
state = ST_ALPHACOMMADASH
|
state = ST_ALPHACOMMADASH
|
||||||
}
|
}
|
||||||
|
if t, err := time.Parse("Mon, 02 Jan 2006 15:04:05 MST", datestr); err == nil {
|
||||||
|
return t, nil
|
||||||
|
}
|
||||||
|
if t, err := time.Parse("Monday, 02 Jan 2006 15:04:05 MST", datestr); err == nil {
|
||||||
|
return t, nil
|
||||||
|
}
|
||||||
case ST_ALPHACOMMADASH: // Starts alpha then comma and one dash
|
case ST_ALPHACOMMADASH: // Starts alpha then comma and one dash
|
||||||
// Mon, 02 Jan 2006 15:04:05 -0700
|
// Mon, 02 Jan 2006 15:04:05 -0700
|
||||||
|
// Monday, 02 Jan 2006 15:04:05 -0700
|
||||||
// Monday, 02-Jan-06 15:04:05 MST
|
// Monday, 02-Jan-06 15:04:05 MST
|
||||||
switch {
|
switch {
|
||||||
case r == '-':
|
case r == '-':
|
||||||
state = ST_ALPHACOMMADASHDASH
|
state = ST_ALPHACOMMADASHDASH
|
||||||
}
|
}
|
||||||
|
t, err := time.Parse("Mon, 02 Jan 2006 15:04:05 -0700", datestr)
|
||||||
|
if err == nil {
|
||||||
|
return t, nil
|
||||||
|
}
|
||||||
|
if t, err := time.Parse("Monday, 02 Jan 2006 15:04:05 -0700", datestr); err == nil {
|
||||||
|
return t, nil
|
||||||
|
}
|
||||||
|
|
||||||
case ST_ALPHAWSCOMMA: // Starts Alpha, whitespace, digit, comma
|
case ST_ALPHAWSCOMMA: // Starts Alpha, whitespace, digit, comma
|
||||||
// May 8, 2009 5:57:51 PM
|
// May 8, 2009 5:57:51 PM
|
||||||
if t, err := time.Parse("Jan 2, 2006 3:04:05 PM", datestr); err == nil {
|
if t, err := time.Parse("Jan 2, 2006 3:04:05 PM", datestr); err == nil {
|
||||||
|
@ -106,6 +106,16 @@ func TestParse(t *testing.T) {
|
|||||||
//u.Debug(fmt.Sprintf("%v", ts.In(time.UTC)), " ---- ", ts.In(time.UTC))
|
//u.Debug(fmt.Sprintf("%v", ts.In(time.UTC)), " ---- ", ts.In(time.UTC))
|
||||||
assert.T(t, "2015-07-03 17:04:07 +0000 UTC" == fmt.Sprintf("%v", ts.In(time.UTC)))
|
assert.T(t, "2015-07-03 17:04:07 +0000 UTC" == fmt.Sprintf("%v", ts.In(time.UTC)))
|
||||||
|
|
||||||
|
ts, err = ParseAny("Mon, 02 Jan 2006 15:04:05 MST")
|
||||||
|
assert.Tf(t, err == nil, "%v", err)
|
||||||
|
//u.Debug(ts.In(time.UTC).Unix(), ts.In(time.UTC))
|
||||||
|
assert.T(t, "2006-01-02 15:04:05 +0000 UTC" == fmt.Sprintf("%v", ts.In(time.UTC)))
|
||||||
|
|
||||||
|
ts, err = ParseAny("Mon, 02 Jan 2006 15:04:05 -0700")
|
||||||
|
assert.Tf(t, err == nil, "%v", err)
|
||||||
|
//u.Debug(ts.In(time.UTC).Unix(), ts.In(time.UTC))
|
||||||
|
assert.T(t, "2006-01-02 22:04:05 +0000 UTC" == fmt.Sprintf("%v", ts.In(time.UTC)))
|
||||||
|
|
||||||
// Golang Native Format
|
// Golang Native Format
|
||||||
ts, err = ParseAny("2015-02-18 00:12:00 +0000 UTC")
|
ts, err = ParseAny("2015-02-18 00:12:00 +0000 UTC")
|
||||||
assert.Tf(t, err == nil, "%v", err)
|
assert.Tf(t, err == nil, "%v", err)
|
||||||
|
Loading…
Reference in New Issue
Block a user