package main import ( "fmt" "time" "encoding/json" ) type UnixTime struct { time.Time } func (t *UnixTime) UnmarshalJSON(data []byte) error { var i int64 if err := json.Unmarshal(data, &i); err != nil { return err } t.Time = time.Unix(i, 0) return nil } func main() { var o = struct { Created UnixTime `json:"t"` }{} _ = json.Unmarshal([]byte(`{"t": 1606089600}`), &o) fmt.Printf("%v\n", o.Created) }