A principal classe Java para trabalhar com datas é a java.util.Date, porém, essa não apresenta métodos de fácil uso para operações com datas e horas, por esse motivo, fóruns de programação Java são inundados com perguntas de como fazer operações de data e/ou hora.
Operações usando a classe Date:
//Cria uma instância de Date com a data atual:
Date agora = new Date();
System.out.println(agora);
//Adicionando duas horas (7200000 milisegundos)
agora.setTime(agora.getTime() + 7200000);
System.out.println(agora);
Conforme demonstrado a classe java.util.Date trabalha com milisegundos o que gera a necessidade de realizar muitos cálculos para fazer uma operação simples como diminuir um mês por exemplo. Para evitar esses problemas é aconselhável o uso da classe java.util.Calendar:
//Adquirindo uma instância de Calendar
Calendar cal = Calendar.getInstance();
// Inserindo a data e hora atual em Calendar
cal.setTime(new Date());
System.out.println(”Dia e Hora atual: ” + cal.getTime());
//Adicionando duas horas
cal.add(Calendar.HOUR_OF_DAY, 2);
System.out.println(”Mais duas horas: ” + cal.getTime());
//Adicionando três meses
cal.add(Calendar.MONTH, 3);
System.out.println(”Mais três meses: ” + cal.getTime());
Além do método add() a classe Calendar fornece o método roll() que permite adicionar um determinado campo (por exemplo hora) sem alterar todos os outros, dessa forma, se forem acrescidas 30 horas a uma determinada variável do tipo Date o dia não será modificado.
Mesmo com todas as facilidades da classe Calendar existem outras API’s construídas por terceiros como, por exemplo, o Joda Time (http://joda-time.sourceforge.net/). Fique a vontade de usá-la caso seja necessário.
0 comentários: