我正在使用Java-eclipse和oracle SGBD
在我的数据库中有一个Date类型的列。
我以dd / mm / yyyy格式存储数据。没有时间在那里,当我查看表格数据oracle console时,它没有显示任何时间。
但在我的应用程序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;
}
答案 0 :(得分:1)
而不是
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));