atom/date.go

36 lines
685 B
Go
Raw Normal View History

2024-10-16 21:28:04 +02:00
package atom
2024-10-13 17:19:40 +02:00
import (
"errors"
"time"
)
type Date struct {
*CommonAttributes
2024-10-17 17:19:43 +02:00
DateTime string `xml:",chardata"`
2024-10-13 17:19:40 +02:00
}
2024-10-16 19:59:28 +02:00
// DateTime formats a time.Time to string formated as defined by RFC3339. It
// returns a string.
func DateTime(t time.Time) string {
return t.Format(time.RFC3339)
}
2024-10-16 19:59:28 +02:00
// NewDate creates a new Date. It returns a *Date.
func NewDate(t time.Time) *Date {
return &Date{
CommonAttributes: newCommonAttributes(),
DateTime: DateTime(t),
}
}
2024-10-16 19:59:28 +02:00
// Check checks the Date for incompatibilities with RFC4287. It returns an
// error.
2024-10-13 17:19:40 +02:00
func (d *Date) Check() error {
if d.DateTime == "" {
return errors.New("date time element of date is empty")
}
return nil
}