Oi, tenho uma tabela que exibe todas as turmas do meu banco,
mas na coluna data aparece o formato yy/mm/dd, e eu quero que apareça dd/mm/yy
alguem poderia me ajudar ?
public static Date formataData(String data) throws Exception {
if (data == null || data.equals(""))
return null;
Date date = null;
try {
DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
date = (java.util.Date)formatter.parse(data);
} catch (ParseException e) {
throw e;
}
return date;
}
aqui estou formatando a data
private void atualizarTabela() {
TurmaDAO turmaDAO = new TurmaDAO();
try {
ArrayList<Turma> turmas = turmaDAO.buscarTodosTurmas();
String[] colunas = new String[]{"Turma", "Instrutor", "Início", "Conclusão ", "Código"};
Object[][] dados = new Object[turmas.size()][5];
for (int i = 0; i < turmas.size(); i++) {
Turma turma = turmas.get(i);
dados[i][0] = turma.getNome();
dados[i][1] = turma.getInstrutor();
dados[i][2] = turma.getDataInicio();
dados[i][3] = turma.getDataConclusao();
dados[i][4] = turma.getCodigo();
}
DefaultTableModel dataModel = new DefaultTableModel(dados, colunas);
TabelaTurma.setModel(dataModel);
} catch (SQLException ex) {
JOptionPane.showMessageDialog(this, "Erro " + ex.getMessage());
}
}
esta e minha tabela
sua data vem sempre desse jeito?
substring nao te serve?
String date = "09/07/03";
System.out.println(date);
System.out.println(date.substring(6, 8).concat("/").concat(date.substring(3, 5)).concat("/").concat(date.substring(0, 2)) );
09/07/03
03/07/09
Nesta linha to exibindo a data do banco na tabela
dados[i][2] = turma.getDataInicio();
dados[i][3] = turma.getDataConclusao();
o que deve mdar ai ?
[quote=Daianne]Nesta linha to exibindo a data do banco na tabela
dados[i][2] = turma.getDataInicio();
dados[i][3] = turma.getDataConclusao();
o que deve mdar ai ?[/quote]
se esses campos forem do tipo data no banco ficaria assim:
String dtInicio = turma.getDataInicio() .substring(6, 8).concat("/").concat( turma.getDataInicio().substring(3, 5)).concat("/").concat( turma.getDataInicio().substring(0, 2));
String dtConclusao = turma.getDataConclusao() .substring(6, 8).concat("/").concat(turma.getDataConclusao().substring(3, 5)).concat("/").concat( turma.getDataConclusao().substring(0, 2));
dados[i][2] =dtInicio ;
dados[i][3] = dtConclusao;
como vc esta usando algum framework tipo hibernate ou usando jdbc (ResultSet, Statement)?
mas o campo dtinico e conclusao estão como date ou varchar?
entao usa assim
public static String convertDate(String format, Date dtConsulta) {
try {
SimpleDateFormat formatter = new SimpleDateFormat(format,
new Locale("pt", "BR"));
return formatter.format(dtConsulta);
} catch (Exception e) {
return null;
}
}
dados[i][2] = convertDate("dd/MM/yy", turma.getDataInicio());
dados[i][3] = convertDate("dd/MM/yy", turma.getDataConclusao());
Mas o metodo para convertre fica na classe turma, ou na classe q esta a minha tabela, ou não importa a classe?
sugiro vc criar uma classe para colocar esse metodo.
ex. DateUtil.java e usar como eu coloquei
ou pode colocar na classe turma mesmo, so q ai vc tem q criar outro metodo pra recuperar.
ex.[code]
public String getDataInicioFormatada(){
return convertDate(“dd/MM/yy”, getDataInicio());
}
public String getDataConclusaoFormatada(){
return convertDate(“dd/MM/yy”, getDataConclusao());
}
[/code]
o mais correto seria a 1a sugestao, pq vc pode usar o metodo em outras classes se for o caso;
Segui a primeira sugestão mas da erro na tabela, (Tipos inconpativeis)
cannot find simbol
simbol: method ConvertData (java.leng String, java.Util.Date)
found: ConvertData
required: java.lang object
coloca o codigo onde vc recupera no turmaDAO.buscarTodosTurmas();
se vc recupera ± assim tinha q dar certo
while (rs.next()) {
rs.getDate("DataInicio");
}
olha o codigo e vê se ta certo
to criando uma turma
private Turma criarTurmaAPartirDoResultSet(ResultSet rsTurma) throws SQLException {
Turma turma = new Turma();
turma.setNome(rsTurma.getString("nome"));
turma.setCodigo(rsTurma.getInt("codigo"));
// turma.getInstrutor(rsTurma.getInt("instrutor"));
turma.setDataInicio(rsTurma.getDate("datainicio"));
turma.setVagas(rsTurma.getString("vaga"));
turma.setDataConclusao(rsTurma.getDate("dataconclusao"));
return turma;
}
este e o metodo BuscarTodas as turmas
public ArrayList<Turma> buscarTodosTurmas() throws SQLException {
Statement smt = conexao.pegarConexao().createStatement();
String sql = "SELECT * FROM turma";
ResultSet rsTurma = smt.executeQuery(sql);
ArrayList<Turma>turmas=new ArrayList<Turma>();
while(rsTurma.next()){
Turma turma =criarTurmaAPartirDoResultSet(rsTurma);
turmas.add(turma);
}
return turmas;
}
qual pacote vc importou para o Date dtConsulta no metodo public static String convertDate(String format, Date dtConsulta)?
tem que ser java.util.Date e não java.sql.Date;
mas estou usando o java.util.Date
vc criou uma classe especifica pro metodo convertdate ou colocou na classe turma?
posta como fcou