Manipulando Datas em Java

Aprenda a manipular datas em java de modo fácil e prático.

Lidando com Datas e Horas em Java java.util.Date Vamos lá, Primeiro nós temos a classe Date em java.util que representa uma data simples em java. Podemos criar uma variável data assim: java.util.Date x; Se colocarmos import java.util.*; poderemos omitir na declaração da variável ficando assim: Date x; Assim podemos criar um objeto para armazenar nesta variável: x=new Date(); No momento da criação do objeto Date, o sistema armazena no mesmo a Data/Hora do relógio do computador. Podemos então mostrar a hora atual: Date x=new Date(); System.out.println(x); java.text.SimpleTextFormat() Mas como colocar uma data digitada pelo usuário em uma variável Date? Temos que usar conversores. A classe java.text.SimpleTextFormat() nos servirá: import java.util.*; import java.text.*; String x=request.getParameter("dataUsuario"); //pegando dados de um formulário WEB SimpleDateFormat sdf1= new SimpleDateFormat("dd/MM/yyyy"); //você pode usar outras máscaras Date dataUsuario=sdf1.parse(stx); O contrário também é importante: mostrar a data em forma de texto. SimpleDateFormat também serve para isso: String x=request.getParameter("dataUsuario"); //pegando dados de um formulário WEB SimpleDateFormat sdf1= new SimpleDateFormat("dd/MM/yyyy"); //você pode usar outras máscaras Date y=new Date(); System.out.println(sdf1.format(y)); java.util.GregorianCalendar A classe Date é bem simples e serve para armazenar datas apenas. Ainda temos que manipular as datas não é? Tipo acrescentar 10 dias, verificar qual o dia da semana, e coisas assim. Para isso vamos usar a classe GregorianCalendar. GregorianCalendar gc=new GregorianCalendar(); Como a classe Date, quando um objeto é criado a data/hora do sistema é assumido automaticamente. Algumas funções da classe são muito úteis. Vamos dar uma olhada: GET. Obter o valor de um dos componentes da Data, como dia da semana, dia do mês, hora, mês ou qualquer outra coisa: GregorianCalendar gc=new GregorianCalendar(); System.out.println(gc.get(gc.DAY_OF_WEEK)); //Mostra qual o dia da semana 1 = domingo, 2=segunda, etc Além do dia da semana, é possível mostrar a hora (gc.HOUR), minuto (gc.MINUTES), etc. ADD. Adicionar um ou mais dias, horas, mês ou qualquer outra coisa a uma data: GregorianCalendar gc=new GregorianCalendar(); gc.add(gc.MONTH, 2); //Adiciona 2 meses à data atual Além de gc.MONTH, é possível adicionar horas (gc.HOUR), minutos (gc.MINUTES), etc. É lógico que adicionando valores negativos, você subtrai os valores! IS LEAP YEAR. Verifica se um ano é bissexto. GregorianCalendar gc=new GregorianCalendar(); System.out.println(gc.isLeapYear(2009)); // imprime falso. 2009 não é bissexto. Outras funções disponíveis: • SET – mudar o valor de uma data. gc.set(10,03,2009); ou gc.set(10,03,2009,10,30); ou gc.set(gc.HOUR,11); • AFTER/BEFORE – verificar se um data é depois ou antes de outrar. gc.after(gc2) gc é depois de gc2? • GETMAXIMUN – obter o maior valor disponível para um campo considerando os valores atuais dos outros. gc.getMaximum(gc.DATE); retornaria 28 se o mês fosse fevereiro de um ano não bissexto. Por fim, para juntar os dois, GregorianCalendar e Date, utilizamos duas funções: GregorianCalendar gc=new GregorianCalendar(); Date d1=gc.getTime(); //"Pega" a data do GregorianCalendar para uma variável Date gc.setTime(d1); //Armazena a data de d1 para o GregorianCalendar gc.

Artigos relacionados