24 lines
473 B
Go
24 lines
473 B
Go
package types
|
|
|
|
import "time"
|
|
|
|
type ISO8601DateTime time.Time
|
|
|
|
func NewISO8601DateTime(t time.Time) *ISO8601DateTime {
|
|
i := ISO8601DateTime(t)
|
|
return &i
|
|
}
|
|
|
|
func (i *ISO8601DateTime) UnmarshalJSON(b []byte) error {
|
|
t, err := time.Parse(`"2006-01-02T15:04:05Z"`, string(b))
|
|
if err != nil {
|
|
return err
|
|
}
|
|
*i = ISO8601DateTime(t)
|
|
return nil
|
|
}
|
|
|
|
func (i ISO8601DateTime) MarshalJSON() ([]byte, error) {
|
|
return []byte(time.Time(i).Format(`"2006-01-02T15:04:05Z"`)), nil
|
|
}
|