private TemporalAccessor wrap(final TemporalAccessor in) {
    if (in.isSupported(ChronoField.INSTANT_SECONDS)
        && in.isSupported(ChronoField.NANO_OF_SECOND)) {
      return in;
    }
    return new DefaultingTemporalAccessor(in);
  }
The goal of this class is to return a timestamp. A timestamp represents a
single moment (instant) on the time line. However, some strings will not
contain enough information to assign it to one instant in time. For
example, if no time zone information is supplied, or a date is supplied,
but no time. In those cases, they need to be populated manually. This
method accepts all the data parsed from the supplied String and assigns it
reasonable defaults if fields are missing.

@param in The fields populated by parsing the supplied string
@return The fields populated with default values if required
common/src/java/org/apache/hive/common/util/TimestampParser.java