code: public void setZone(DateTimeZone newZone) {
          newZone = DateTimeUtils.getZone(newZone);
          Chronology chrono = getChronology();
          if (chrono.getZone() != newZone) {
              setChronology(chrono.withZone(newZone));  // set via this class not super
          }
      }
docs: Sets the time zone of the datetime, changing the chronology and field values.
  <p>
  Changing the zone using this method retains the millisecond instant.
  The millisecond instant is adjusted in the new zone to compensate.
  
  chronology. Setting the time zone does not affect the millisecond value
  of this instant.
  <p>
  If the chronology already has this time zone, no change occurs.
  
  @param newZone  the time zone to use, null means default zone
  @see #setZoneRetainFields