Boa tarde.
Caros usuarios, estou com um problema no meu sisteminha.
Na minha pagina JSP tem um campo Data de Nascimento. Preciso converter ele para mostrar na tela de cadastro concluido e salvar no banco.
Estou usando no meu ClienteCTR (controlador) o seguinte código:
DateFormat fmtData = new SimpleDateFormat("dd/MM/yyyy");
String data = request.getParameter("dataNascimento");
try {
pf.setDataNascimento( new Date(fmtData.parse(data).getTime()));
} catch (ParseException e) {
e.printStackTrace();
}
String dataNascimento = request.getParameter("dataNascimento");
try {
pf.setDataNascimento(new Date(fmtData.parse(dataNascimento).getTime()));
} catch (ParseException e) {
e.printStackTrace();
}
O codigo esta funcionando, porem não faz o que eu gostaria que fizesse
quando eu concluo o cadastro, meu servlet redireciona para a pagina respCliente.jsp e nela é mostrado todos os campos digitados pelo usuario.
No campo Data de Nascimento mostra a data em formato americano inclusive mostrando hora, etc, mas gostaria que mostrasse somente dd/MM/aaaa.
O que estou fazendo errado?
O que me sugerem?
Cara tente fazer assim:
DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
Date date = (Date) formatter.parse(Variavel_String);
Tente isso:
SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");
dataFormatada = formatador.format(getDataDesformatada());
Tentei os 2 codigos acima, mas não deu
não sei se fiz as mudanças corretas mais da erro.
O codigo
[code]DateFormat fmtData = new SimpleDateFormat(“dd/MM/yyyy”);
String data = request.getParameter(“dataNascimento”);
try {
pf.setDataNascimento( new Date(fmtData.parse(data).getTime()));
} catch (ParseException e) {
e.printStackTrace();
}
String dataNascimento = request.getParameter("dataNascimento");
try {
pf.setDataNascimento(new Date(fmtData.parse(dataNascimento).getTime()));
} catch (ParseException e) {
e.printStackTrace();
}[/code]
me mostra no formato em ingles por que esta DateFormat é para inserir a data no banco de dados… (eu acho)
Pra mostrar na tela JSP somente dd/MM/aaaa não tem algo mais simples??
A sua data de nascimento é uma string?
para usar o codigo que lhe passei, deve ser do tipo Date
Exemplo simple:
Entidade.
Date dataInicial;
public Date getDataInicial()
{
return dataInicial;
}
public void setDataInicial(Date dataInicial)
{
this.dataInicial= dataInicial;
}
public String getDataFormatado(){
String dataFormatada = null;
if(getDataInicial()!=null)
{
SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");
dataFormatada = formatador.format(getDataInicial());
}
return dataFormatada;
}
sua view.
.....
<h:outputText value="Data: #{entidade.dataFormatado}" />
..
Espero que fique mais claro
ela é um DATE mesmo.
você me passou
DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
Date date = (Date) formatter.parse(Variavel_String);
devo alterar o meu codigo inteiro, ou só a parte que vc me enviou
eu fiz a seguinte alteração:
DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
Date date = (Date) formatter.parse("dataNascimento");
try {
pf.setDataNascimento( new Date(formatter.parse(data).getTime()));
} catch (ParseException e) {
e.printStackTrace();
}
String dataNascimento = request.getParameter("dataNascimento");
try {
pf.setDataNascimento(new Date(formatter.parse(dataNascimento).getTime()));
} catch (ParseException e) {
e.printStackTrace();
}
é isto mesmo ou estou fazendo errado?
Aonde que vc esta pegando o valor na sua view “jsp”?
na minha VIEW, estou pegando:
[code]
Data Nascimento: |
${pessoaFisica.dataNascimento} |
[/code]
acho que encontrei o erro, mas não sei formatar.
No view estou pegando a data, sem formatação, não é? como eu faço pra formatar nesta pagina? Vou ter que usar taglib?
Cara, faz como o exemplo que eu fiz, e retorna para sua view uma string, ela ja vai vir formatada no padrão!
Cria o metodo
public String getDataFormatado(){
String dataFormatada = null;
if(getDataInicial()!=null)
{
SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");
dataFormatada = formatador.format(getDataInicial());
}
return dataFormatada;
}
ai retorna no seu jsp
<tr>
<th>Data Nascimento:</th>
<td>${pessoaFisica.dataFormatado}</td>
</tr>
Sobre o seu exemplo…
[code]
DateFormat formatter = new SimpleDateFormat(“dd/MM/yyyy”);
Date date = (Date) formatter.parse(“dataNascimento”);
try {
pf.setDataNascimento( new Date(formatter.parse(data).getTime()));
} catch (ParseException e) {
e.printStackTrace();
}
//AQUI ATRIBUI A SEGUNDA VEZ O CALOR
String dataNascimento = request.getParameter(“dataNascimento”);
try {
pf.setDataNascimento(new Date(formatter.parse(dataNascimento).getTime()));
} catch (ParseException e) {
e.printStackTrace();
} [/code]
esta atribuindo duas vezes dataNascimento…
esta assim na sua aplicação?
Consegui pelo seu exemplo
Tive uma dificuldade pois estava me confundindo em algumas expressões, mas deu certo!
Obrigado LaercioPontin!