public long add(long instant, long value) {
   if (iTimeField) {
     int offset = getOffsetToAdd(instant);
     long localInstant = iField.add(instant + offset, value);
     return localInstant - offset;
   } else {
     long localInstant = iZone.convertUTCToLocal(instant);
     localInstant = iField.add(localInstant, value);
     return iZone.convertLocalToUTC(localInstant, false, instant);
   }
 }