code: private void updateTime() {
          computeTime();
          // If we are lenient, we need to recompute the fields to normalize
          // the values.  Also, if we haven't set all the fields yet (i.e.,
          // in a newly-created object), we need to fill in the fields. [LIU]
          if (isLenient() || !areAllFieldsSet) areFieldsSet = false;
          isTimeSet = true;
          areFieldsVirtuallySet = false;
      }
docs: Recompute the time and update the status fields isTimeSet
  and areFieldsSet.  Callers should check isTimeSet and only
  call this method if isTimeSet is false.