Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 30th, 2012  |  syntax: None  |  size: 0.52 KB  |  hits: 12  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. type Timestamp int64
  2.  
  3. func (ts *Timestamp) UnmarshalJSON(data []byte) os.Error {
  4.         if len(data) < 2 || data[0] != '"' || data[len(data)-1] != '"' {
  5.                 return os.NewError("cannot unmarshal non-string into timestamp")
  6.         }
  7.         data = data[1 : len(data)-1]
  8.         t, err := time.Parse(time.RFC3339, string(data))
  9.         if err != nil {
  10.                 return err
  11.         }
  12.         *ts = Timestamp(t.Nanoseconds())
  13.         return nil
  14. }
  15.  
  16. func (ts Timestamp) MarshalJSON() ([]byte, os.Error) {
  17.         t := time.NanosecondsToUTC(int64(ts))
  18.         return []byte(`"` + t.Format(time.RFC3339) + `"`), nil
  19. }