code: public final void setDate(final Date date) {
          this.date = date;
          if (date instanceof DateTime) {
              if (Value.DATE.equals(getParameter(Parameter.VALUE))) {
                  getParameters().replace(Value.DATE_TIME);
              }
              updateTimeZone(((DateTime) date).getTimeZone());
          } else {
              if (date != null) {
                  getParameters().replace(Value.DATE);
              }
              /*
              else {
                  getParameters().removeAll(Parameter.VALUE);
              }
              */
              // ensure timezone is null for VALUE=DATE or null properties..
              updateTimeZone(null);
          }
      }
docs: Sets the date value of this property. The timezone and value of this
  instance will also be updated accordingly.
  
  @param date The date to set.