|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- package serder
-
- import (
- "fmt"
- "strconv"
- "time"
-
- "gitlink.org.cn/cloudream/common/utils/serder/types"
- )
-
- type Metadata = types.Metadata
-
- type TimestampSecond time.Time
-
- func (t *TimestampSecond) MarshalJSON() ([]byte, error) {
- raw := time.Time(*t)
- return []byte(fmt.Sprintf("%d", raw.Unix())), nil
- }
-
- func (t *TimestampSecond) UnmarshalJSON(data []byte) error {
- var timestamp int64
- var err error
- if timestamp, err = strconv.ParseInt(string(data), 10, 64); err != nil {
- return err
- }
-
- *t = TimestampSecond(time.Unix(timestamp, 0))
- return nil
- }
-
- type TimestampMilliSecond time.Time
-
- func (t *TimestampMilliSecond) MarshalJSON() ([]byte, error) {
- raw := time.Time(*t)
- return []byte(fmt.Sprintf("%d", raw.UnixMilli())), nil
- }
-
- func (t *TimestampMilliSecond) UnmarshalJSON(data []byte) error {
- var timestamp int64
- var err error
- if timestamp, err = strconv.ParseInt(string(data), 10, 64); err != nil {
- return err
- }
-
- *t = TimestampMilliSecond(time.UnixMilli(timestamp))
- return nil
- }
|