func (t *Time) UnmarshalJSON(data []byte) (err error) {
	if data[0] != []byte(`"`)[0] || data[len(data)-1] != []byte(`"`)[0] {
		return errors.New("Not quoted")
	}
	*t, err = ParseTime(string(data[1 : len(data)-1]))
	return
}
UnmarshalJSON implements js.Unmarshaler interface.
The time is expected to be a quoted string in TsLayout
format.
package common
import (
	"encoding/json"
	"errors"
	"time"
)
const TsLayout = "2006-01-02T15:04:05.000Z"
type Time time.Time
func (t Time) MarshalJSON() ([]byte, error) {
	return json.Marshal(time.Time(t).UTC().Format(TsLayout))
}