@Matt_Dale thanks again for your hint.

Now, when I try to Unmarshal this bson value back into my FcsDate, I’m struggling again. I tried following:

func (v *FcsDate) UnmarshalBSONValue(t bsontype.Type, b []byte) (err error) {
	log.Printf("UnmarshalBSONValue: %v, %v", t, b)
	ts := int64(binary.BigEndian.Uint64(b))
	// ts is in nanoseconds, so we convert it to seconds
	*v = FcsDate(time.Unix(ts/1000/1000/1000, (ts%1000)*1000000).UTC())
	log.Printf("FcsSate is: %v", *v)
	return nil
}

This returns a date, but it’s wrong. For example it returns “1970-06-06T09:59:31.880Z” instead of “1997-05-23T00:00:00.000+00:00”.

Do you have any advise?

Regards

Meinrad