code: public Timestamp withLocalOffset(Integer offset)
      {
          Precision precision = getPrecision();
          if (precision.alwaysUnknownOffset() ||
              safeEquals(offset, getLocalOffset()))
          {
              return this;
          }
  
          Timestamp ts = createFromUtcFields(precision,
                                             getZYear(),
                                             getZMonth(),
                                             getZDay(),
                                             getZHour(),
                                             getZMinute(),
                                             getZSecond(),
                                             getZFractionalSecond(),
                                             offset);
          return ts;
      }
docs: Returns a timestamp at the same point in time, but with the given local
  offset.  If this timestamp has precision coarser than minutes, then it
  is returned unchanged since such timestamps always have an unknown
  offset.