Pegar data (dd/MM/yyyy) do objeto Calendar - JSF

11 respostas
L

Olá!

Estou desenvolvendo um projeto web (JSP + JSF) com o Netbeans 6.5.

Preciso pegar a data selecionada em um objeto Calendar (JSF) para inserir em um banco de dados Postgres, cujo campo é do tipo date.

Alguém pode me ajudar?! :slight_smile:

[]'s

11 Respostas

B

Calendar calendar = new GregorianCalendar();//seu objeto Calendar Date data = new Date(calendar.getTimeInMillis());//Aqui você cria seu objeto Date para salvar no banco

É isto???

L

Vou testar sua solução e já lhe digo…

Por enquanto, obrigado!

L

Não é bem isso que eu preciso biro, não sei se me expliquei bem…
Vou tentar melhorar a explicação: :slight_smile:

Tenho uma página JSF, que utiliza os componentes da paleta do NetBeans.

Nessa página o usuário seleciona uma data em um objeto Calendar. Preciso pegar a data selecionada e gravar no banco de dados (Postgres, cujo tipo do campo é date).

Estou repassando essas informações para o banco de dados por meio de um DataProvider, e esse retorna um erro quando tento enviar uma String no lugar da data. Preciso pegar a data selecionada, com o formato dd/MM/yyyy e que seja do tipo Date.

Se houver uma forma melhor de enviar esses dados para o banco, sem utilizar um DataProvider, aceito sugestões! Estou iniciando agora em web… Estou só aprendendo!!! :smiley:

Obrigado pela atenção, []'s

B

Ah sim, acho que entendi!! ;p

Cara… se você criar um Binding para seu componente Calendar em um managed bean você poderá recuperar o valor selecionado pelo usuário da seguinte forma:

seuComponenteCalendar.getSelectedDate();

Espero que ajude!!

L

biro é isso mesmo que estou fazendo!! :smiley:

Só que assim, quando recupero a data selecionada, consigo um valor no seguinte formato: Tue Nov 10 00:00:00 BRST 2009
O formato que preciso é: 10/11/2009

Mais alguma sugestão??! :slight_smile:

Meu problema é o formato em que recupero a data…

Mas mesmo assim, obrigado pela ajuda!!! Vlw…

Continuo aguardando novas soluções…

[]'s

B

Quando você recupera a data pelo método getSelectedDate(), você pode convertê-la para outro formato utilizando o DateFormat.
Ex:

DateFormat fmt = new SimpleDateFormat("dd/MM/yyyy"); String sData = fmt.format(suaData);//formata a data em um String seguindo a máscara. //ou Date data = fmt.parse(umaStringData);//pega a String e converte para Date

Espero que seja isto!! o.O"

L

biro

Testei sua solução e o problema é o seguinte:

DateFormat fmt = new SimpleDateFormat("dd/MM/yyyy"); String sData = fmt.format(suaData);//formata a data em um String seguindo a máscara.
Com isso, consegui transformar o valor Date em um valor String no formato que eu preciso (dd/MM/yyyy) :slight_smile:

Preciso do valor do tipo Date, para isso usei:

Date data = fmt.parse(umaStringData);//pega a String e converte para Date

Consigo um valor do tipo Date, só que no formato errado, novamente. :frowning:

O que devo fazer para salvar uma data em um campo do banco de dados do tipo Date???!!

Mais uma vez, muito obrigado pela atenção e ajuda!!! :smiley:

T

Cara, to com esse mesmo problema.
não teve uma solução??!

B

pelo que entendi o título do tópico está errado, pois vc já está conseguindo pegar a data e o seu problema seria salvar no banco. para salvar no banco pesquise aqui no fórum mesmo por hibernate (mais indicado) ou jdbc.

A

Não sei se é o que vc tá querendo, uma vez eu fiz desse jeito usando JSF
porém não usei Calendar…

troquei o sql.Date por util.Date…
então meu DAO ficou da Seguinte maneira

...
    ps.setDate(3, new java.sql.Date(nota.getNota_dt_emissao().getTime()));  
...

depois é só formatar a data na página com o

...
   <f:convertDateTime pattern="dd/MM/yyyy"/>  
...

Aí funciona Legal…o bnaco que usei foi o PostGres.

T

Cara, no banco ele já está inserindo no formado adequado o problema que eu tava tendo era em outro canto. Passei um dia inteiro pra descobrir que o problema nao estava na data. hehehe…mas valeu a atenção da galera ai!
repetindo…sem formatação nenhuma no java … no banco já está ficando no formato dd/MM/yyyy

Criado 10 de novembro de 2009
Ultima resposta 16 de dez. de 2009
Respostas 11
Participantes 5