private void populateTimestampTZ() {
    if (timestampTZEmpty) {
      if (bytesEmpty) {
        throw new IllegalStateException("Bytes are empty");
      }
      long seconds = getSeconds(currentBytes, offset);
      int nanos = hasDecimalOrSecondVInt(currentBytes[offset]) ? getNanos(currentBytes, offset + 4) : 0;
      timestampTZ.set(seconds, nanos, timeZone);
      timestampTZEmpty = false;
    }
  }
The data of TimestampTZWritable can be stored either in a byte[]
or in a TimestampTZ object. Calling this method ensures that the byte[]
is populated from the TimestampTZ object if previously empty.
serde/src/java/org/apache/hadoop/hive/serde2/io/TimestampLocalTZWritable.java