Store time in RFC3339Nano to keep nanoseconds

This commit is contained in:
theo-delaune-argus 2020-03-12 16:33:50 +01:00
parent 1c4dd844c4
commit fea610f7b4
4 changed files with 7 additions and 6 deletions

View File

@ -671,7 +671,7 @@ func (cmd *StringCmd) Time() (time.Time, error) {
if cmd.err != nil { if cmd.err != nil {
return time.Time{}, cmd.err return time.Time{}, cmd.err
} }
return time.Parse(time.RFC3339, cmd.Val()) return time.Parse(time.RFC3339Nano, cmd.Val())
} }
func (cmd *StringCmd) Scan(val interface{}) error { func (cmd *StringCmd) Scan(val interface{}) error {

View File

@ -72,14 +72,14 @@ var _ = Describe("Cmd", func() {
}) })
It("supports time.Time", func() { It("supports time.Time", func() {
tm := time.Date(2019, 01, 01, 0, 0, 0, 0, time.UTC) tm := time.Date(2019, 01, 01, 9, 45, 10, 222125, time.UTC)
err := client.Set("time_key", tm, 0).Err() err := client.Set("time_key", tm, 0).Err()
Expect(err).NotTo(HaveOccurred()) Expect(err).NotTo(HaveOccurred())
s, err := client.Get("time_key").Result() s, err := client.Get("time_key").Result()
Expect(err).NotTo(HaveOccurred()) Expect(err).NotTo(HaveOccurred())
Expect(s).To(Equal("2019-01-01T00:00:00Z")) Expect(s).To(Equal("2019-01-01T09:45:10.000222125Z"))
tm2, err := client.Get("time_key").Time() tm2, err := client.Get("time_key").Time()
Expect(err).NotTo(HaveOccurred()) Expect(err).NotTo(HaveOccurred())

View File

@ -55,13 +55,14 @@ var _ = Describe("WriteBuffer", func() {
}) })
It("should append time", func() { It("should append time", func() {
err := wr.WriteArgs([]interface{}{time.Unix(1414141414, 0).UTC()}) tm := time.Date(2019, 01, 01, 9, 45, 10, 222125, time.UTC)
err := wr.WriteArgs([]interface{}{tm})
Expect(err).NotTo(HaveOccurred()) Expect(err).NotTo(HaveOccurred())
err = wr.Flush() err = wr.Flush()
Expect(err).NotTo(HaveOccurred()) Expect(err).NotTo(HaveOccurred())
Expect(buf.Len()).To(Equal(31)) Expect(buf.Len()).To(Equal(41))
}) })
It("should append marshalable args", func() { It("should append marshalable args", func() {

View File

@ -93,7 +93,7 @@ func (w *Writer) writeArg(v interface{}) error {
} }
return w.int(0) return w.int(0)
case time.Time: case time.Time:
return w.string(v.Format(time.RFC3339)) return w.string(v.Format(time.RFC3339Nano))
case encoding.BinaryMarshaler: case encoding.BinaryMarshaler:
b, err := v.MarshalBinary() b, err := v.MarshalBinary()
if err != nil { if err != nil {