#13 - browse articles
This commit is contained in:
29
internal/parser/TimestampParser.go
Normal file
29
internal/parser/TimestampParser.go
Normal file
@@ -0,0 +1,29 @@
|
||||
package parser
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
)
|
||||
|
||||
func ParseTimestamp(str string) (time.Time, error) {
|
||||
layouts := []string{
|
||||
time.RFC1123, // "Mon, 02 Jan 2006 15:04:05 MST"
|
||||
time.RFC1123Z, // "Mon, 02 Jan 2006 15:04:05 -0700"
|
||||
time.RFC3339, // "2006-01-02T15:04:05Z07:00"
|
||||
time.RFC3339Nano, // "2006-01-02T15:04:05.999999999Z07:00"
|
||||
"2006-01-02 15:04:05", // Common SQL format
|
||||
"02 Jan 2006 15:04:05", // "02 Jan 2025 15:04:05"
|
||||
"02-Jan-2006 15:04:05", // "02-Jan-2025 15:04:05"
|
||||
"02/01/2006 15:04:05", // "02/01/2025 15:04:05"
|
||||
}
|
||||
|
||||
var t time.Time
|
||||
var err error
|
||||
for _, layout := range layouts {
|
||||
t, err = time.Parse(layout, str)
|
||||
if err == nil {
|
||||
return t, nil
|
||||
}
|
||||
}
|
||||
return time.Time{}, fmt.Errorf("unknown timestamp format: %s", str)
|
||||
}
|
||||
Reference in New Issue
Block a user