我正在使用 Java - eclipse 和 oracle SGBD
在我的数据库中有一个日期类型的列。
我以 dd/mm/yyyy 格式存储数据。没有在那里放置任何时间,并且当我查看表数据 oracle 控制台时它不会显示任何时间。
但是在我的 java 应用程序中,当我使用 JTable 提取数据时...它显示 dd/mm/yyyy hh:mm:ss AM/PM (示例 - 12/04/2012 00:00:00 AM)
为什么显示时间?如何删除该时间部分并仅显示日期?
请帮忙
这就是我用来填充表格的方法
公共(public) DefaultTableModel getJoueurData() {
Vector<Vector<String>> data;
Vector<String> colum;
data = new Vector<Vector<String>>();
colum = new Vector<String>();
colum.add("id_j");
colum.add("nom");
colum.add("prenom");
colum.add("DATE_NAISSANCE");
colum.add("NATIONALITE");
String query = "select id_j,nom,prenom,DATE_NAISSANCE,nationalite from joueur order by id_j";
try {
Connection conn = ReportDriver.connectDB(DB_CONNECTION, DB_USER,
DB_PASSWORD);
stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(query);
Vector<String> vstring = null;
while (rs.next()) {
vstring = new Vector<String>();
vstring.add(rs.getString("id_j"));
vstring.add(rs.getString("nom"));
vstring.add(rs.getString("prenom"));
vstring.add(rs.getString("date_naissance"));
vstring.add(rs.getString("nationalite"));
vstring.add("\n\n\n\n\n\n\n");
data.add(vstring);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (stmt != null) {
try {
stmt.close();
} catch (SQLException ex) {
}
}
}
DefaultTableModel d = new DefaultTableModel(data, colum);
return d;
}
最佳答案
而不是
vstring.add(rs.getString("date_naissance"));
你需要这样的东西:
java.sql.Date date = rs.getString("date_naissance");
java.text.DateFormat df = java.text.DateFormat.getDateInstance();
vstring.add(df.format(date));
关于Java仅显示日期(不带时间),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24721474/