util/time.go (14 lines of code) (raw):

package util import ( "fmt" "strconv" "strings" "time" ) // UnixTimestamp represents a type UnixTimestamp time.Time // MarshalJSON implements the json.Marshaler interface. func (t UnixTimestamp) MarshalJSON() ([]byte, error) { return []byte(fmt.Sprintf("\"%d\"", time.Time(t).Unix())), nil } // UnmarshalJSON implements the json.Unmarshaler interface. func (t *UnixTimestamp) UnmarshalJSON(data []byte) (err error) { seconds, err := strconv.Atoi( strings.Trim(string(data), "\\\""), ) if err != nil { return err } *t = UnixTimestamp(time.Unix(int64(seconds), 0)) return nil }