time.go 412 B

1234567891011121314151617181920212223242526
  1. package util
  2. import (
  3. "fmt"
  4. "strconv"
  5. "time"
  6. )
  7. type Time struct {
  8. time.Time
  9. }
  10. func (t Time) MarshalJSON() ([]byte, error) {
  11. timestamp := fmt.Sprintf("%d", t.Unix())
  12. return []byte(timestamp), nil
  13. }
  14. func (t *Time) UnmarshalJSON(rv []byte) error {
  15. timeStr := string(rv)
  16. timeStamp, err := strconv.ParseInt(timeStr, 10, 64)
  17. if err != nil {
  18. return err
  19. }
  20. t.Time = time.Unix(timeStamp, 0)
  21. return nil
  22. }