我正在从Oracle DB检索日期列,并将其作为字符串传递给HTTP API调用。虽然数据库中的列值为26/08/2015 12:58:42,但是当我尝试:-

    SimpleDateFormat sdfDate = new SimpleDateFormat(
            "yyyy-MM-dd'T'HH:mm:ss.SSS'+03:00'");
    this.requestDate = sdfDate.format(requestDate);


我在API调用URL中将String值获取为2015-08-26T00:00:00.000+03:00
为什么会发生这种情况,以及如何获得原始的小时,分​​钟和秒?

编辑:我正在通过ResultSet.getDate(“ column_name”)查询日期列。我使用ResultSet.getTimestamp(“ column_name”)时已解决

最佳答案

public class TestTime {
    public static void main(String[] args) throws SQLException, Exception {
        Connection con = ConnectionDefinition.getOracleConnection();
        SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'+03:00'");
        ResultSet rs = con.prepareCall("select sysdate from dual").executeQuery();
        while(rs.next()){
            System.err.println(sdfDate.format(rs.getTimestamp(1))); // try this
            System.err.println(sdfDate.format(rs.getDate(1)));
        }
    }
}

08-18 08:40