「Oracle Database 11g Enterprise Edition リリース 11.2.0.2.0 - パーティション化、OLAP、データ マイニング、および Real Application Testing オプションを備えた 64 ビット プロダクション」を使用しています。
スキーマが次のテーブルがあります
COLUMN_NAME DATA_TYPE DATA_TYPE_MOD DATA_TYPE_OWNER DATA_LENGTH
CITY VARCHAR2 (null) (null) 30
COUNTRY VARCHAR2 (null) (null) 30
DATE_TYPE DATE (null) (null) 7
PARTNO NUMBER (null) (null) 22
STATE VARCHAR2 (null) (null) 30
ZIP VARCHAR2 (null) (null) 30
を取得するための単純な Java クライアントを作成しましたDATE_TYPE
。
public class DateIssue {
private void testDateOutput() {
Connection con = null;
Statement psmt = null;
try {
con = getConnection();
con.setAutoCommit(true);
psmt = con.createStatement();
String sql = "SELECT DATE_TYPE FROM EMP";
ResultSet rs = psmt.executeQuery(sql);
while (rs.next()) {
String dateString = rs.getString(1);
System.out.println("As String :"+ dateString);
}
con.close();
}
catch (SQLException e) {
e.printStackTrace();
}
}
private static Connection getConnection() {
Connection connection = null;
try {
Class.forName("oracle.jdbc.pool.OracleDataSource");
java.util.Properties info = new java.util.Properties();
info.put("user", "myuser");
info.put("password", "mypass");
info.put("oracle.jdbc.mapDateToTimestamp", "false");
connection = DriverManager.getConnection("jdbc:oracle:thin:@myserver:1521:myservicename", info);
}
catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}
public static void main(String rgs[]) throws Exception {
DateIssue di = new DateIssue();
di.testDateOutput();
System.out.println("----------------------------------------------------");
}
ojdbc6.jar(12.1.0.1.0) の出力は次のとおりです。 ojdbc6.jar(11.2.0.2.0) の出力は次のとおり As String :2013-11-12
です。 As String :2013-11-12 11:10:09
Java バージョン: 1.7
ojdbc6.jar(12.1.0.1.0) で動作が変わるのはなぜですか? ojdbc6.jar(12.1.0.1.0) を使用した形式で出力が必要な場合は2013-11-12 11:10:09
どうすればよいですか?