code: public Date getDate(int columnIndex, Calendar cal) throws SQLException {
  
          TimestampData t = (TimestampData) getColumnInType(columnIndex,
              Type.SQL_DATE);
          long millis     = t.getSeconds() * 1000;
          int  zoneOffset = HsqlDateTime.getZoneMillis(cal, millis);
  
          return new Date(millis - zoneOffset);
      }
docs: <!-- start generic documentation -->
  Retrieves the value of the designated column in the current row
  of this <code>ResultSet</code> object as a <code>java.sql.Date</code> object
  in the Java programming language.
  This method uses the given calendar to construct an appropriate millisecond
  value for the date if the underlying database does not store
  timezone information.
  <!-- end generic documentation -->
  
  @param columnIndex the first column is 1, the second is 2, ...
  @param cal the <code>java.util.Calendar</code> object
  to use in constructing the date
  @return the column value as a <code>java.sql.Date</code> object;
  if the value is SQL <code>NULL</code>,
  the value returned is <code>null</code> in the Java programming language
  @exception SQLException if a database access error occurs
  or this method is called on a closed result set
  @since JDK 1.2 (JDK 1.1.x developers: read the overview for
  JDBCResultSet)