package time import ( "fmt" "time" ) type Time time.Time const ( timeFormat = "2006-01-02 15:04:05" ) // MarshalJSON on Json Time format Time field with %Y-%m-%d %H:%M:%S func (t *Time) MarshalJSON() ([]byte, error) { // 重写time转换成json之后的格式 var tmp = fmt.Sprintf("\"%s\"", time.Time(*t).Format(timeFormat)) return []byte(tmp), nil } func (t *Time) UnmarshalJSON(data []byte) error { // Ignore null, like in the main JSON package. if string(data) == "null" { return nil } // Fractional seconds are handled implicitly by Parse. var err error rawT, err := time.Parse(`"`+timeFormat+`"`, string(data)) *t = Time(rawT) return err }