code: public ZonedDateTime getInternalZonedDateTime(ColumnInformation columnInfo, Class clazz,
        TimeZone timeZone) throws SQLException {
      if (lastValueWasNull()) {
        return null;
      }
      if (length == 0) {
        lastValueNull |= BIT_LAST_FIELD_NULL;
        return null;
      }
  
      String raw = new String(buf, pos, length, StandardCharsets.UTF_8);
  
      switch (columnInfo.getColumnType().getSqlType()) {
        case Types.TIMESTAMP:
  
          if (raw.startsWith("0000-00-00 00:00:00")) {
            return null;
          }
          try {
            LocalDateTime localDateTime = LocalDateTime
                .parse(raw, TEXT_LOCAL_DATE_TIME.withZone(timeZone.toZoneId()));
            return ZonedDateTime.of(localDateTime, timeZone.toZoneId());
          } catch (DateTimeParseException dateParserEx) {
            throw new SQLException(raw
                + " cannot be parse as LocalDateTime. time must have \"yyyy-MM-dd HH:mm:ss[.S]\" format");
          }
  
        case Types.VARCHAR:
        case Types.LONGVARCHAR:
        case Types.CHAR:
  
          if (raw.startsWith("0000-00-00 00:00:00")) {
            return null;
          }
          try {
            return ZonedDateTime.parse(raw, TEXT_ZONED_DATE_TIME);
          } catch (DateTimeParseException dateParserEx) {
            throw new SQLException(raw
                + " cannot be parse as ZonedDateTime. time must have \"yyyy-MM-dd[T/ ]HH:mm:ss[.S]\" "
                + "with offset and timezone format (example : '2011-12-03 10:15:30+01:00[Europe/Paris]')");
          }
  
        default:
          throw new SQLException(
              "Cannot read " + clazz.getName() + " using a " + columnInfo.getColumnType()
                  .getJavaTypeName() + " field");
  
      }
  
    }
docs: Get ZonedDateTime format from raw text format.
  
  @param columnInfo column information
  @param clazz      class for logging
  @param timeZone   time zone
  @return ZonedDateTime value
  @throws SQLException if column type doesn't permit conversion