
Untitled
By: a guest on
May 30th, 2012 | syntax:
None | size: 0.52 KB | hits: 12 | expires: Never
type Timestamp int64
func (ts *Timestamp) UnmarshalJSON(data []byte) os.Error {
if len(data) < 2 || data[0] != '"' || data[len(data)-1] != '"' {
return os.NewError("cannot unmarshal non-string into timestamp")
}
data = data[1 : len(data)-1]
t, err := time.Parse(time.RFC3339, string(data))
if err != nil {
return err
}
*ts = Timestamp(t.Nanoseconds())
return nil
}
func (ts Timestamp) MarshalJSON() ([]byte, os.Error) {
t := time.NanosecondsToUTC(int64(ts))
return []byte(`"` + t.Format(time.RFC3339) + `"`), nil
}