Timestamp getTimestamp()

in asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBRowStore.java [696:718]


    Timestamp getTimestamp(int columnIndex, Calendar cal) throws SQLException {
        ADBDatatype valueType = getColumnType(columnIndex);
        switch (valueType) {
            case MISSING:
            case NULL:
                return null;
            case DATE:
                return toTimestampFromDateChronon(getColumnRegister(columnIndex, 0), getTimeZone(cal, tzSystem));
            case DATETIME:
                return toTimestampFromDatetimeChronon(getColumnRegister(columnIndex, 0), getTimeZone(cal, tzSystem));
            case STRING:
                try {
                    Instant i = Instant.parse(getStringFromObjectStore(columnIndex));
                    long millis0 = TimeUnit.SECONDS.toMillis(i.getEpochSecond());
                    long millis1 = TimeUnit.NANOSECONDS.toMillis(i.getNano());
                    return new Timestamp(millis0 + millis1);
                } catch (DateTimeParseException e) {
                    throw getErrorReporter().errorInvalidValueOfType(valueType);
                }
            default:
                throw getErrorReporter().errorUnexpectedType(valueType);
        }
    }