增加了列表日期和存储的日期格式化的处理
package utils
import (
"database/sql/driver"
"fmt"
"time"
)
type LocalTime time.Time
func (t *LocalTime) MarshalJSON() ([]byte, error) {
tTime := time.Time(*t)
return []byte(fmt.Sprintf("\"%v\"", tTime.Format(time.DateTime))), nil
}
var layout = time.DateTime
func (t *LocalTime) UnmarshalJSON(data []byte) (err error) {
now, err := time.Parse(`"`+layout+`"`, string(data))
*t = LocalTime(now)
return
}
func (t LocalTime) Value() (driver.Value, error) {
var zeroTime time.Time
tlt := time.Time(t)
if tlt.UnixNano() == zeroTime.UnixNano() {
return nil, nil
}
return tlt, nil
}
func (t *LocalTime) Scan(v interface{}) error {
if value, ok := v.(time.Time); ok {
*t = LocalTime(value)
return nil
}
return fmt.Errorf("can not convert %v to timestamp", v)
}