Pessoal, estou tendo problemas em recuperar campos de data do banco. Ocorre o seguinte quando tento recuperá-los, o programa me traz a data do seguinte formato:[quote]2005-05-17 16:33:10.920
[/quote]
Sendo que eu precisaria trazê-la da seguinte forma:[quote]
17-05-2005[/quote]Estou fazendo da seguinte maneira para trazer os dados do banco:while (rs.next()){
Date data = rs.getDate("data");
Date datasolucao = rs.getDate("datasolucao");
Date datafechamento = rs.getDate("datafechamento");
out.println(data);
out.println(datafechamento);
out.println(datasolucao);
}
O resultado dos “out.println” que estou fazendo são:[quote]
2005-05-17 16:33:10.920
2005-05-18 15:35:08.540
2005-05-18 15:38:20.320
[/quote]
Agradeço se alguém puder me ajudar.
Tenta usar import java.text.DateFormat assim
Pega o local configurado no S.O. no caso Brasil então o formato da data é dd/mm/aaaa
Locale locale = Locale.getDefault();
O DateFormat.SHORT é o formato q pode ser com ou sem o dia da semana da uma olhada na documentação da classe DateFomate e locale é o local tipos de data para cada local
DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM, locale);
dt_entrada_aux = df.format(dt_entrada);
Tenta isso ai:
while (rs.next()){
Date data = rs.getDate("data");
Date datasolucao = rs.getDate("datasolucao");
Date datafechamento = rs.getDate("datafechamento");
String formato = "dd/MM/yyyy"
SimpleDateFormat formatador = new SimpleDateFormat(formato);
String dia = formatador.format(data);
String diasolucao = formatador.format(datasolucao);
String diafechamento = formatador.format(datafechamento);
out.println(dia);
out.println(diasolucao);
out.println(diafechamento);
}
Testa ai eu acho que isso irá resolver seus problemas.
Valeu pessoal pela dica, funcionou. O que estou tentando fazer agora e que gostaria de que se possível me ajudassem é a trazer a data no formato dia/mes/ano hora:min:seg AM ou PM. Tipo:[quote]6/7/2005 7:38:36 AM [/quote]
Agradeço se puderem me dar uma ajuda.
Problemas é formatação de datas é a coisa mais comum de acontecer…
o correto seria vc pensar em uma classe utilitária para tratar isso…formatar a data de acordo com o formato que vc precisar no momento…
Por acaso eu tenho uma classe como essa pronta…
import java.text.ParseException;
import java.text.SimpleDateFormat;
public class FormatHelper {
private static FormatHelper instance = new FormatHelper();
private SimpleDateFormat dataCompleta=new SimpleDateFormat("dd/MM/yyyy hh:mm");
private SimpleDateFormat dataSimples=new SimpleDateFormat("dd/MM/yyyy");
private SimpleDateFormat dataDatabase=new SimpleDateFormat("yyyy-MM-dd hh:mm");
public static FormatHelper getInstance() {
return instance;
}
private FormatHelper() {
}
public String fullDateFormat(java.util.Date data) {
if(data==null || data.equals("")) return "";
else return dataCompleta.format(data);
}
public String simpleDateFormat(java.util.Date data) {
if(data==null || data.equals("")) return "";
else return dataSimples.format(data);
}
public String databaseDateFormat(java.util.Date data) {
if(data==null || data.equals("")) return "";
else return dataDatabase.format(data);
}
public java.util.Date parseSimpleDate(String data) throws ParseException {
if(data==null || data.equals(""))
return null;
else {
return dataSimples.parse(data);
}
}
}
Como eu uso???
FormatHelper.getInstance().simpleDateFormat(objeto.getData())
Atenção…como vc pode ver a classe é singleton…portanto vc nunca vai dar um NEW nela…sempre vai usar a sua instancia como segue acima.
FormatHelper.getInstance().metodo
Qualquer dúvida é só postar!
[]'s
Desculpe minha ignorância Diana, mas se possível gostaria que me indicasse como posso fazer para utilizar este seu código dentro de meu programa .java[code]package Conexao_Novo;
import java.sql.*;
import java.math.BigDecimal;
import java.util.Date;
public class Conexao_teste_meuschamados{
public static void main(String args[]){
String odbc = "jdbc:odbc:helpdesk";
String usuario = "dcarvalho";
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection(
odbc, "helpdesk", "1234");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM chamado_teste where usuario='"+usuario+"' order by cod_chamado desc");
while (rs.next()){
BigDecimal codchamado = rs.getBigDecimal("cod_chamado");
Date data = rs.getDate("data");
String cod_tipochamado = rs.getString("tipochamado");
String cod_sistema = rs.getString("sistema");
String prioridade = rs.getString("prioridade");
String descricao = rs.getString("descricao");
String solucao = rs.getString("solucao");
Date datasolucao = rs.getDate("datasolucao");
Date datafechamento = rs.getDate("datafechamento");
String status = rs.getString("status");
String resp = rs.getString("responsavel");
String nota = rs.getString("satisfacao");
System.out.println(codchamado);
System.out.println(data);
System.out.println(cod_tipochamado);
System.out.println(cod_sistema);
System.out.println(prioridade);
System.out.println(descricao);
System.out.println(datafechamento);
System.out.println(status);
System.out.println(resp);
System.out.println(nota);
System.out.println(datasolucao);
System.out.println(solucao);
}
} catch (Exception e) {
System.out.println("Não foi possível conectar ao banco" + e.getMessage());
}
}
}
[/code]
Para que a data vinda do banco pegasse o formato dataCompleta. Agradeço se puderes me ajudar.
Caro colega…obviamente vc deve ter a classe utilitaria em algum pacote da sua aplicação…
e depois é só:
System.out.println(FormatHelper.getInstance().simpleDateFormat(
datafechamento));
System.out.println(status);
System.out.println(resp);
System.out.println(nota);
System.out.println(FormatHelper.getInstance().simpleDateFormat(
datasolucao));
System.out.println(solucao);
[]'s
Diana, ocorre que como estou buscando os dados do banco, se busco os mesmos da seguinte forma:Date datasolucao = rs.getDate("datasolucao");
A data me é retornada da seguinte maneira:[quote]07/06/2005[/quote]E assim não adianta eu pegar o seu código, pois não tenho a hora e os minutos para trabalhar, sendo que se utilizo:String datasolucao = rs.getString("datasolucao");
A data me é retornada da seguinte maneira:[quote]2005-05-16 14:55:41.177[/quote]Que seria a maneira ideal para ser utilizada em seu código, só que pelo fato de ser uma string, não consigo utilizar o seu[quote]System.out.println(FormatHelper.getInstance().simpleDateFormat(
datafechamento)); [/quote]Saberia me indicar como eu faria para resolver isto.
:roll:
Bom, acho que a idéia é vc olhar a classe utilitaria e adaptar ela para vc.
De qualquer forma, vc sempre pode “brincar” com a String retornada…
String data = new String("12/12/2005 12:25");
String out = data.substring(0,10);
String dt[]=out.split("/");
System.out.println(dt[0]+"/"+dt[1]+"/"+dt[2]);
[]'s