18 de agosto de 2010

JavaSE: Converter java.util.Date para String e vice-versa

Converter String para java.util.Date
Para converter uma String em java.util.Date, é necessário utilizar a classe java.text.SimpleDateFormat, passado uma String por parâmetro que se refere ao formato em que se encontra a String que será convertida:
SimpleDateFormat formataData = new SimpleDateFormat("dd/MM/yyyy");
Date dataEntrada = null;
try { 
    dataEntrada = formataData.parse("21/09/2010");
} catch (ParseException ex) {
    ex.printStackTrace();
}

Converter java.util.Date para String
Quando se tem um Date e quer transformar em String é só utilizar o mesmo SimpleDateFormat. O 'new Date()' pega a data atual do sistema, a String passada por parâmetro para SimpleDateFormat é o formato em que se deseja que a String seja formatada:
Date dataHoje = new Date();
SimpleDateFormat formataData = new SimpleDateFormat("dd/MM/yyyy");
String data = formataData.format(dataHoje);

Por se tratar de uma formatação onde não há riscos de ocorrer erros, não é necessário colocar a formatação dentro de um bloco 'try catch' como a conversão anterior.

3 comentários:

  1. Eu tenho um campo no banco que se chama date_nasc e é do tipo date.
    Como eu converto ele para String no momento de recuperar ele da jsp para a sevlet?

    ResponderExcluir
  2. tenho uma fuçao mouse click da para selecionar os dados dos pessoal cadastrado na minha database e poder editar so que eu so consigo fazer essa função nas outras form porque possuem campos do tipo character varing ou varchar e desta vez calhe com uma form que so possui campos do tipo date e eu tenho que fazer essa função para poder editar esses campos e n consigo fazer isso com uma variavel do tipo date vou passar o exemplo aqui para vcs entenderem melhor e entre()vou esplicar certos campos para ser mais facil de se entender :

    (maneira funcional) try {
    String nome_cliente = ""+tableCliente.getValueAt(tableCliente.getSelectedRow(), 1);
    conex.conexao();
    conex.executaSql("select *from cliente (cliente é o nome da minha tabela no BD ) where nome (nome é o nome de um dos campos da tabela cliente)='"+nome_cliente+"'");
    conex.rs.first(); assim eu consigo pq pego uma variavel do tipo string agora vou mostrar como da erro
    (aqui n posso passar string porq todos campos que tenho nessa tabela sao do tipo date e eu n sei como posso fazer pra fazer essa funçao passando o date ai em vez de string)String seleciona = ""+tableRequisicao.getValueAt(tableRequisicao.getSelectedRow(), 1);
    conex.conexao();
    conex.executaSql("select *from requisicaolivro where data_saida ='"+seleciona+"'");
    conex.rs.first();
    o data_saida é um campo da minha tabela requisicaolivro no BD e la em cima na hora de fazer o metodo em vez de String seleciona = eu tenho que passar um Date seliciona = ou algo do genero para poder dar certo como é que eu faço isso ? precioso de ajuda urgente pf alguem ai me de uma luz.

    ResponderExcluir
    Respostas
    1. Obrigado pra quem tentou ajudar mais uma das soluçoes era fazer o metodo apartir da chaves primaria entao fica assim:<< int cod = (int) table.getValueAt(table.getSelectedRow(),0); >>

      Excluir

Deixe seu comentário... ;)