code: @Override
      public Date readDate() {
          int ref = readInteger();
          if ((ref & 1) == 0) {
              // reference to previously found date
              return (Date) getReference(ref >> 1);
          }
          long ms = (long) buf.getDouble();
          Date date = new Date(ms);
          storeReference(date);
          return date;
      }
docs: Returns a date
  
  @return Date Date object