提交 d7d3be58 authored 作者: mooncake9527's avatar mooncake9527

update xtime

上级 4095a391
...@@ -3,7 +3,6 @@ package xtime ...@@ -3,7 +3,6 @@ package xtime
import ( import (
"database/sql/driver" "database/sql/driver"
"fmt" "fmt"
"reflect"
"regexp" "regexp"
"strconv" "strconv"
"time" "time"
...@@ -20,31 +19,12 @@ const ( ...@@ -20,31 +19,12 @@ const (
// 定义time.Time的别名 // 定义time.Time的别名
type DateTime time.Time type DateTime time.Time
func (ct *DateTime) UnmarshalParam(src string) error {
field, _ := reflect.TypeOf(ct).Elem().FieldByName("DateTime")
format := field.Tag.Get("format")
if format == "" {
format = time.DateTime
}
t, err := time.Parse(format, src)
if err != nil {
return fmt.Errorf("time format should be %s", format)
}
*ct = DateTime(t)
return nil
}
// 自定义json序列化 // 自定义json序列化
func (x DateTime) MarshalJSON() ([]byte, error) { func (x DateTime) MarshalJSON() ([]byte, error) {
if x.IsZero() { if x.IsZero() {
return []byte(`""`), nil return []byte(`""`), nil
} }
field, _ := reflect.TypeOf(x).Elem().FieldByName("DateTime") var jsonTimeStr = fmt.Sprintf(`"%s"`, time.Time(x).Format("2006-01-02 15:04:05"))
format := field.Tag.Get("format")
if format == "" {
format = "2006-01-02 15:04:05"
}
var jsonTimeStr = fmt.Sprintf(`"%s"`, time.Time(x).Format(format))
return []byte(jsonTimeStr), nil return []byte(jsonTimeStr), nil
} }
...@@ -54,12 +34,7 @@ func (x *DateTime) UnmarshalJSON(data []byte) error { ...@@ -54,12 +34,7 @@ func (x *DateTime) UnmarshalJSON(data []byte) error {
*x = DateTime{} *x = DateTime{}
return nil return nil
} }
field, _ := reflect.TypeOf(x).Elem().FieldByName("DateTime") t, err := time.Parse(`"2006-01-02 15:04:05"`, string(data))
format := field.Tag.Get("format")
if format == "" {
format = "2006-01-02 15:04:05"
}
t, err := time.Parse(format, string(data))
if err != nil { if err != nil {
return err return err
} }
......
差异被折叠。
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论