From 49f7be2a35539bae2d43594c9b39268eec7837d0 Mon Sep 17 00:00:00 2001 From: Steven Le Rouzic Date: Wed, 10 Apr 2024 00:14:11 +0200 Subject: Time ! --- model/time.go | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 model/time.go (limited to 'model/time.go') diff --git a/model/time.go b/model/time.go new file mode 100644 index 0000000..b7dc3d2 --- /dev/null +++ b/model/time.go @@ -0,0 +1,34 @@ +package model + +import ( + "time" + "errors" + sqldriver "database/sql/driver" +) + +type Time time.Time + +func MakeTimeNow() Time { + return Time(time.Now().UTC()) +} + +func (self Time) String() string { + return time.Time(self).String() +} + +func (self Time) Value() (sqldriver.Value, error) { + return time.Time(self).Format(time.RFC3339), nil +} + +func (self *Time) Scan(value any) error { + if valueStr, ok := value.(string); ok { + parsedTime, err := time.Parse(time.RFC3339, valueStr) + if err == nil { + *self = Time(parsedTime.UTC()) + } + return err + } else { + return errors.New("Expected a string") + } +} + -- cgit