activity/streams/values/dateTime/gen_dateTime.go

38 行
1.0 KiB
Go

package datetime
import (
"fmt"
"time"
)
// SerializeDateTime converts a dateTime value to an interface representation
// suitable for marshalling into a text or binary format.
func SerializeDateTime(this time.Time) (interface{}, error) {
return this.Format(time.RFC3339), nil
}
// DeserializeDateTime creates dateTime value from an interface representation
// that has been unmarshalled from a text or binary format.
func DeserializeDateTime(this interface{}) (time.Time, error) {
var tmp time.Time
var err error
if s, ok := this.(string); ok {
tmp, err = time.Parse(time.RFC3339, s)
if err != nil {
tmp, err = time.Parse("2006-01-02T15:04Z07:00", s)
if err != nil {
err = fmt.Errorf("%v cannot be interpreted as xsd:datetime", this)
}
}
} else {
err = fmt.Errorf("%v cannot be interpreted as a string for xsd:datetime", this)
}
return tmp, err
}
// LessDateTime returns true if the left dateTime value is less than the right
// value.
func LessDateTime(lhs, rhs time.Time) bool {
return lhs.Before(rhs)
}