Bom dia pessoal , estou iniciando em JSP, estou com duvidas a respeito de manipulação de datas, como faço para declarar uma variavel data em JSP e formatá-la.Preciso usar a biblioteca do java ? onde declaro atraves de scriplets, na verdade tudo aqui é scriplet.Obrigado
Jsp
9 Respostas
Cara… você pode fazer assim:
<%
DateFomat format = new SimpleDateFormat(“dd/MM/yyyy”);
String suaData = format.format(new Date());
%>
Mas tem que importar as classes necessárias na sua JSP, colocando assim no cabeçalho da sua página:
<%@ page import=“java.text.,java.util.” %>
Obs: Creio que você deveria postar esta dúvida no fórum de Desenvolvimento Web, e não de Java Básico.
Vou seguir seu conselho, vou alterar o destino da minha pergunta, mas se possivel podemos terminar esse topico ?, tenho uma data no formato string e preciso formata-la para data para eu poder fazer uma subtração da data atual pela data informada pelo usuario.
Ex
26/10/2009 - 10/02/1998
11 anos a pessoa tem.
Preciso achar esta resposta.Obrigado
package seu.pacote;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class IdadeUtils {
private Date dataAtual;
private int idade;
public IdadeUtils() {
dataAtual = new Date(System.currentTimeMillis());
}
public int getIdade(String sDataUsuario) throws ParseException {
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
Date dataUsuario = df.parse(sDataUsuario);
idade = dataAtual.getYear() - dataUsuario.getYear();
if (dataAtual.getMonth() < dataUsuario.getMonth()) {
idade--;
} else if (dataAtual.getMonth() == dataUsuario.getMonth()) {
if (dataAtual.getDay() < dataUsuario.getDay()) {
idade--;
}
}
return idade;
}
}
Crie esta classe, e, para executá-la em sua JSP, você deve utilizar o import
<%@ page import=“seu.pacote.*” %>
Então é só passar a data que o usuário informar na página para o método. O retorno será um inteiro e representará a idade do usuário.
É mais ou menos isso???

lute, então o que você quer é o contrário, passar uma string para data, nesse caso você faria assim, usando o exemplo do biro:
<%
DateFomat format = new SimpleDateFormat("dd/MM/yyyy");
Date suaData = (Date)format.parse('26/10/2009');
%>
Pessoal não tem um jeito mais simples ?Simplesmente fazer a subtração de duas datas, estou iniciando agora e estou com muitas duvidas.Obrigado
Subtrair datas não te dá simplesmente uma idade, te dá outra data que seria irrelevante no processo que você está criando. É necessário que você implemente o cálculo da idade a partir de uma data de nascimento e de um data atual.
Mas fala aí quais as suas dúvidas. Você deu uma olhada na classe IdadeUtils que eu postei? É lá que você não entendeu?
Abrs.
Blza Biro vamos lá, Como faço para criar um pacote e referencia-lo na pagina JSP, estou iniciando agora , por isso essas duvidas bobas.E como colocar na pratica esse codigo.Obrigado pela antenção Biro.
Ok… vamos por partes.
Por exemplo, você cria a classe IdadeUtils em um pacote chamado nome.pacote (que diz respeito à estrutura de diretórios dos seus códigos fontes - src/nome/pacote/IdadeUtils.java).
Na sua JSP, você terá um campo para o usuário digitar a data de nascimento dele(chamado dataUsuario, por exemplo). Quando você submeter sua página:
a) se você chamar uma servlet:
String dataUsuario = request.getParameter("dataUsuario");
IdadeUtils idadeUtils = new IdadeUtils();
int idade = idadeUtils.getIdade(dataUsuario);
b) se você chamar uma jsp:
<!-- Importanto o pacote para utilizar a classe IdadeUtils -->
<%@ page import="nome.pacote.*" %>
<html>
...
<%
String dataUsuario = request.getParameter("dataUsuario");
IdadeUtils idadeUtils = new IdadeUtils();
int idade = idadeUtils.getIdade(dataUsuario);
out.println("Idade: " + idade);//escreve na página
%>
...
</html>
Qualquer problema, estamos aí.

Perfeito Biro, Muito Obrigado.Deu certinho