33 lines
622 B
Go
33 lines
622 B
Go
package atomfeed
|
|
|
|
import (
|
|
"errors"
|
|
"time"
|
|
)
|
|
|
|
type Date struct {
|
|
*CommonAttributes
|
|
DateTime string
|
|
}
|
|
|
|
// DateTime formats a time.Time to string formated as defined by RFC3339. It
|
|
// returns a string.
|
|
func DateTime(t time.Time) string {
|
|
return string(t.Format(time.RFC3339))
|
|
}
|
|
|
|
// NewDate creates a new Date. It returns a *Date.
|
|
func NewDate(t time.Time) *Date {
|
|
return &Date{DateTime: DateTime(t)}
|
|
}
|
|
|
|
// Check checks the Date for incompatibilities with RFC4287. It returns an
|
|
// error.
|
|
func (d *Date) Check() error {
|
|
if d.DateTime == "" {
|
|
return errors.New("date time element of date is empty")
|
|
}
|
|
|
|
return nil
|
|
}
|