Vejam este link para informações sobre a nova API:
http://blog.caelum.com.br/conheca-a-nova-api-de-datas-do-java-8/
Você já teve que trabalhar com datas em Java e ficou confuso? Eu também.
Por isso vou falar aqui sobre algumas classes Java que são usadas para trabalhar com datas: Date, Calendar e SimpleDateFormat.
Classe java.util.Date:
Esta classe causa muita confusão. Apesar do nome dela ser Date, hoje em dia quase tudo nela está obsoleto. Na verdade esta classe tem a função de armazenar um inteiro longo que representa uma data com precisão de milisegundos.
Classe java.util.Calendar:
Com a classe Calendar podemos obter data e hora do sistema. A classe Calendar representa um calendário onde você pode obter várias informações sobre a data como dia do mês, dia da semana, dia do ano, mês, ano, hora, minuto, etc.
Além disso, com esta classe é possível definir um fuso horário, o que é importante para determinar a data correta.
Exemplo de uso da classe Calendar:
Calendar cal = Calendar.getInstance(); System.out.println(cal.get(Calendar.DAY_OF_MONTH)); System.out.println(cal.get(Calendar.MONTH)); System.out.println(cal.get(Calendar.YEAR)); //Saída: //dia = 26 //mes = 7 (agosto) //ano = 2008
Note que a contagem dos meses começa do zero, por isso agosto é representado com o número 7.
Além disso, Calendar.getInstance(); sempre retorna a data e hora atual do sistema. Se for necessário alterar a data então deve ser usado o método setTime().
Classe java.text.SimpleDateFormat:
Muitas vezes precisamos obter a data a partir de uma string em algum formato do tipo dia/mês/ano. É para isso que existe a classe SimpleDateFormat. Com esta classe podemos definir um pattern do tipo dd/MM/yyyy, que representa o formato da data que queremos utilizar.
O código abaixo mostra um exemplo:
SimpleDateFormat date1 = new SimpleDateFormat("dd/MM/yyyy");
SimpleDateFormat date2 = new SimpleDateFormat("ddMMyyyy");
SimpleDateFormat date3 = new SimpleDateFormat("yyyy-MM-dd");
Date d1 = date1.parse("26/08/2008");
Date d2 = date2.parse("26082008");
Date d3 = date3.parse("2008-08-26");
System.out.println("data 1 = "+date1.format(d1));
System.out.println("data 2 = "+date2.format(d2));
System.out.println("data 3 = "+date3.format(d3));
//Saída:
//data 1 = 26/08/2008
//data 2 = 26082008
//data 3 = 2008-08-26
Existem vários patterns possíveis. Note que o M do exemplo acima tem que ser maíusculo pois ele representa o mês, m minúsculo representa minutos. Veja a documentação da classe para maiores informações.
O exemplo abaixo mostra como obter as informações de data a partir de uma string, usando as 3 classes mencionadas acima:
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
String dataStr = "01/01/2008";
Date date = dateFormat.parse(dataStr);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
System.out.println("dia = " + calendar.get(Calendar.DAY_OF_MONTH));
System.out.println("mes = " + calendar.get(Calendar.MONTH));
System.out.println("ano = " + calendar.get(Calendar.YEAR));
//Saída:
//dia = 1
//mes = 0 (janeiro)
//ano = 2008
Neste post foram apresentados exemplos práticos de como trabalhar com datas em Java. Espero ter ajudado e até a próxima.
Informações mais detalhadas sobre datas podem ser encontradas aqui (em inglês):
http://www.odi.ch/prog/design/datetime.php
4 comentários:
Cara, este post pode até ser antigo, mas me quebrou uma árvore!!!
Abraços,
Vanderson.
É bom saber que foi útil!
Obrigado por visitar o blog!
cara, valeu mesmo tá......
Obrigado pela visita. Pretendo fazer algumas atualizações no blog em breve. Se tiverem sugestões de tópicos é só falar.
Postar um comentário