Files
boot-dev-blog-aggregator/internal/parser/TimestampParser.go
2025-03-11 16:08:34 +02:00

30 lines
786 B
Go

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)
}