Commit 5b8a483a authored by deads2k's avatar deads2k

make proto time precision match json

parent afc4506c
...@@ -42,7 +42,10 @@ func (m *Time) ProtoTime() *Timestamp { ...@@ -42,7 +42,10 @@ func (m *Time) ProtoTime() *Timestamp {
} }
return &Timestamp{ return &Timestamp{
Seconds: m.Time.Unix(), Seconds: m.Time.Unix(),
Nanos: int32(m.Time.Nanosecond()), // leaving this here for the record. our JSON only handled seconds, so this results in writes by
// protobuf clients storing values that aren't read by json clients, which results in unexpected
// field mutation, which fails various validation and equality code.
// Nanos: int32(m.Time.Nanosecond()),
} }
} }
...@@ -64,7 +67,11 @@ func (m *Time) Unmarshal(data []byte) error { ...@@ -64,7 +67,11 @@ func (m *Time) Unmarshal(data []byte) error {
if err := p.Unmarshal(data); err != nil { if err := p.Unmarshal(data); err != nil {
return err return err
} }
m.Time = time.Unix(p.Seconds, int64(p.Nanos)).Local() // leaving this here for the record. our JSON only handled seconds, so this results in writes by
// protobuf clients storing values that aren't read by json clients, which results in unexpected
// field mutation, which fails various validation and equality code.
// m.Time = time.Unix(p.Seconds, int64(p.Nanos)).Local()
m.Time = time.Unix(p.Seconds, int64(0)).Local()
return nil return nil
} }
......
...@@ -152,7 +152,7 @@ func TestTimeProto(t *testing.T) { ...@@ -152,7 +152,7 @@ func TestTimeProto(t *testing.T) {
input Time input Time
}{ }{
{Time{}}, {Time{}},
{Date(1998, time.May, 5, 1, 5, 5, 50, time.Local)}, {Date(1998, time.May, 5, 1, 5, 5, 0, time.Local)},
{Date(1998, time.May, 5, 5, 5, 5, 0, time.Local)}, {Date(1998, time.May, 5, 5, 5, 5, 0, time.Local)},
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment