Uploaded image for project: 'Go Driver'
  1. Go Driver
  2. GODRIVER-1135

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

    XMLWordPrintableJSON

Details

    • Icon: Improvement Improvement
    • Resolution: Done
    • Icon: Major - P3 Major - P3
    • None
    • None
    • BSON
    • None

    Description

       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
      

      Attachments

        Activity

          People

            manny.eppinger@mongodb.com Emmanuel Eppinger (Inactive)
            reage521@gmail.com Tiansheng Ren
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: