From 77587b8157312320eb9a7092707d6bf0fe434148 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=B6=9B?= Date: Wed, 14 Jun 2023 21:22:10 +0800 Subject: [PATCH] =?UTF-8?q?enhance(types):=E6=97=A5=E6=9C=9F=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E7=B1=BB=E5=9E=8B=E5=A2=9E=E5=8A=A0=E4=BB=8E=E5=AD=97?= =?UTF-8?q?=E7=AC=A6=E4=B8=B2=E8=A7=A3=E6=9E=90=E6=88=90=E4=B8=BA=E6=97=A5?= =?UTF-8?q?=E6=9C=9F=E6=97=B6=E9=97=B4=E6=8C=87=E9=92=88=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E7=9A=84=E5=87=BD=E6=95=B0=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- types/date.go | 15 +++++++++++++++ types/datetime.go | 16 ++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/types/date.go b/types/date.go index d1703aa..4897776 100644 --- a/types/date.go +++ b/types/date.go @@ -57,6 +57,21 @@ func ParseDate(t string) (Date, error) { return NewEmptyDate(), fmt.Errorf("无法解析给定的日期,格式不正确。") } +func ParseDatep(t string) (*Date, error) { + if len(t) == 0 { + return nil, fmt.Errorf("不能解析空白的日期时间。") + } + for _, layout := range dateLayouts { + d, err := time.ParseInLocation(layout, t, loc) + if err == nil { + return &Date{ + Time: d, + }, nil + } + } + return nil, fmt.Errorf("无法解析给定的日期,格式不正确。") +} + func ParseDateWithDefault(t string, defaultDate Date) Date { if len(t) == 0 { return defaultDate diff --git a/types/datetime.go b/types/datetime.go index d6d8140..56e4025 100644 --- a/types/datetime.go +++ b/types/datetime.go @@ -67,6 +67,22 @@ func ParseDateTime(t string) (DateTime, error) { return NewEmptyDateTime(), fmt.Errorf("无法解析给定的日期时间,格式不正确。") } +func ParseDateTimep(t string) (*DateTime, error) { + if len(t) == 0 { + return nil, fmt.Errorf("不能解析空白的日期时间。") + } + for _, layout := range datetimeLayouts { + fmt.Printf("Parse: %s, Try layout: %s\n", t, layout) + d, err := time.ParseInLocation(layout, t, loc) + if err == nil { + return &DateTime{ + Time: d, + }, nil + } + } + return nil, fmt.Errorf("无法解析给定的日期时间,格式不正确。") +} + var _ driver.Valuer = (*DateTime)(nil) func (dt DateTime) Value() (driver.Value, error) {