diff --git a/types/datetime.go b/types/datetime.go index 74bbd5a..ea5a41e 100644 --- a/types/datetime.go +++ b/types/datetime.go @@ -22,6 +22,12 @@ func Now() DateTime { } } +func NewEmptyDateTime() DateTime { + return DateTime{ + Time: time.Time{}.In(loc), + } +} + func Timestamp() int64 { startline := time.Date(2022, 2, 22, 22, 22, 22, 0, loc).Unix() return Now().Unix() - startline @@ -33,6 +39,19 @@ func FromTime(t time.Time) DateTime { } } +func ParseDateTime(t string) (DateTime, error) { + if len(t) == 0 { + return NewEmptyDateTime(), fmt.Errorf("不能解析空白的日期时间。") + } + d, err := time.ParseInLocation("2006-01-02 13:04:05", t, loc) + if err != nil { + return NewEmptyDateTime(), fmt.Errorf("无法解析给定的日期, %w", err) + } + return DateTime{ + Time: d, + }, nil +} + var _ driver.Valuer = (*DateTime)(nil) func (dt DateTime) Value() (driver.Value, error) {