bson encode time.Time , decode is not time.Time format,

XMLWordPrintableJSON

    • Type: Improvement
    • Resolution: Done
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: BSON
    • None
    • None
    • None
    • None
    • None
    • None
    • None
    • None

       bson encode time.Time format data,  decode is not time.Time format, but double type data.

       

      test case:
       

      	beforeTimeVal := time.Now()
      	beforeTimeMap := map[string]interface{}{"ts": beforeTimeVal}
      	before, err := Marshal(beforeTimeMap)
      	noerr(t, err)
      
      	afterTimeMap := map[string]interface{}{}
      	err = Unmarshal(before, &afterTimeMap)
      	noerr(t, err)
      	afterTime, ok := afterTimeMap["ts"].(time.Time)
      	if !ok {
      		t.Errorf("after time format error. after time info:%#v", afterTimeMap)
      		return
      	}
      	if afterTime.UnixNano() != beforeTimeVal.UnixNano() {
      		t.Errorf("after time not equal before time. befere:%#v, after:%#v", beforeTimeVal, afterTime)
      		return
      	}
      

      test case result:

      /home/reage/go_src/src/mongodb/mongo-go-driver/bson/bson_test.go:67: after time format error. after time info:map[string]interface {}{"ts":1560433311128}
      FAIL
      

            Assignee:
            Emmanuel Eppinger (Inactive)
            Reporter:
            Tiansheng Ren
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: