package util import ( "fmt" "strconv" "time" ) type Time struct { time.Time } func (t Time) MarshalJSON() ([]byte, error) { timestamp := fmt.Sprintf("%d", t.Unix()) return []byte(timestamp), nil } func (t *Time) UnmarshalJSON(rv []byte) error { timeStr := string(rv) timeStamp, err := strconv.ParseInt(timeStr, 10, 64) if err != nil { return err } t.Time = time.Unix(timeStamp, 0) return nil }