@@ -122,8 +122,7 @@ func NewDocumentEncoder() DocumentEncoder {
122
122
return & encoder {}
123
123
}
124
124
125
- func convertTimeToInt64 (t * time.Time ) int64 {
126
- if t == nil { return 0 }
125
+ func convertTimeToInt64 (t time.Time ) int64 {
127
126
return t .Unix ()* 1000 + int64 (t .Nanosecond ()/ 1e6 )
128
127
}
129
128
@@ -443,10 +442,14 @@ func (e *encoder) encodeSliceAsArray(rval reflect.Value, minsize bool) ([]*Value
443
442
vals = append (vals , VC .Decimal128 (t ))
444
443
continue
445
444
case time.Time :
446
- vals = append (vals , VC .DateTime (convertTimeToInt64 (& t )))
445
+ vals = append (vals , VC .DateTime (convertTimeToInt64 (t )))
447
446
continue
448
447
case * time.Time :
449
- vals = append (vals , VC .DateTime (convertTimeToInt64 (t )))
448
+ if t == nil {
449
+ vals = append (vals , VC .Null ())
450
+ } else {
451
+ vals = append (vals , VC .DateTime (convertTimeToInt64 (* t )))
452
+ }
450
453
continue
451
454
}
452
455
@@ -529,10 +532,14 @@ func (e *encoder) encodeStruct(val reflect.Value) ([]*Element, error) {
529
532
elems = append (elems , EC .Decimal128 (key , t ))
530
533
continue
531
534
case time.Time :
532
- elems = append (elems , EC .DateTime (key , convertTimeToInt64 (& t )))
535
+ elems = append (elems , EC .DateTime (key , convertTimeToInt64 (t )))
533
536
continue
534
537
case * time.Time :
535
- elems = append (elems , EC .DateTime (key , convertTimeToInt64 (t )))
538
+ if t == nil {
539
+ elems = append (elems , EC .Null (key ))
540
+ } else {
541
+ elems = append (elems , EC .DateTime (key , convertTimeToInt64 (* t )))
542
+ }
536
543
continue
537
544
}
538
545
field = e .underlyingVal (field )
0 commit comments