Uma das principais dificuldades que programadores com pouca experiência em Java possuem é a manipulção de datas.
Aqui farei uma breve explicação com operações simples para manipulação do objeto java.util.Date.
Uma das principais classes que utilizamos quando manipulamos data em Java é a classe SimpleDateFormat. Ela é um subclasse de DateFormat, e nos fornece construtores com parâmetros que tornam bem flexível a formatação da data, conforme veremos nos exemplos a seguir…
Formatando datas usando um formato personalizado
DateFormat formatter = new SimpleDateFormat(”MM/dd/yy”);
Date d = (Date)formatter.parse(”25/08/1977″);
Esse código bem simples cria um objeto do tipo DateFormat para nossas datas que tem como padrão o formato passado por nós no contrutor. Aqui algumas outras formatações:
DateFormat formatter = new SimpleDateFormat(”dd-MMM-yyyy”);
Date d = (Date)formatter.parse(”25-Dec-2006″);
DateFormat formatter = new SimpleDateFormat(”dd-MM-yyyy HH:mm”);
Date d = (Date)formatter.parse(”25-12-2006 10:34″);
Simples assim. É preciso apenas ter cuidado porque se você passar uma data que não é válida para o formato passado no construtor, será lançada uma ParseException.
Podemos também fazer o processo inverso, passando um objeto Date e recebendo uma String, vejamos mais alguns exemplos:
Date d = new Date();
DateFormat formatter = new SimpleDateFormat(”dd/MM/yyyy”);
String str = formatter.format(d);
Temos uma String que será a data de hoje, no formato dd/MM/yyyy
Determinando o número de dias em um mês
Date d = new Date();
Calendar cal = new GegorianCalendar();
cal.setTime(d);
int numeroDias = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
Comparando datas
Algumas vezes podemos precisar saber a difenrença entre datas, seja em dias, em minutos ou em horas. Fazer isso também é simples, vejamos:
Calendar calendar1 = new GregorianCalendar(1977, Calendar.January, 17);
Calendar calendar2 = new GregorianCalendar(1981, Calendar.April, 16);
calendar1.before(calendar2) //true
calendar1.after(calendar2) //false
Para calcularmos as diferenças é importante pegarmos primeiro a diferença em milisegundos, é a partir dela que faremos os cálculos:
long diferenca = calendar2.getTimeInMilis() - calendar1.getTimeInMilis();
a diferença em dias:
long difDias = diferenca/(24*60*60*1000);
a diferença em horas:
long difHoras = diferenca/(60*60*1000);
a diferença em minutos:
long difMinutos = diferenca/(60*1000);
a diferença em segundos:
long difHoras = diferenca/(1000);
Nesse artigo mostrei as principais operações que fazemos com datas, e quais as classes que utilizamos para manipula-las.
Fabricio Braga
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário