stash/pkg/utils/date.go
2025-11-25 08:17:51 +11:00

39 lines
741 B
Go

package utils
import (
"fmt"
"time"
)
func ParseDateStringAsTime(dateString string) (time.Time, error) {
// https://stackoverflow.com/a/20234207 WTF?
t, e := time.Parse(time.RFC3339, dateString)
if e == nil {
return t, nil
}
t, e = time.Parse("2006-01-02", dateString)
if e == nil {
return t, nil
}
t, e = time.Parse("2006-01-02 15:04:05", dateString)
if e == nil {
return t, nil
}
// Support partial dates: year-month format
t, e = time.Parse("2006-01", dateString)
if e == nil {
return t, nil
}
// Support partial dates: year only format
t, e = time.Parse("2006", dateString)
if e == nil {
return t, nil
}
return time.Time{}, fmt.Errorf("ParseDateStringAsTime failed: dateString <%s>", dateString)
}