Java

Monday, May 08, 2006

 

Numeros, Datas e Formatação.

A classe Date está ultrapassada e deve-se usar Calendar para manipular datas. No entanto, ainda é últil usar,

Date data = new Date()

para obter uma representação do momento presente. A classe Calendar é abstrata, logo, não podemos criar uma instância dela diretamente com o comando,

Calendar calendario = new Calendar();

Devemos usar

Calendar calendario = Calendar.getInstance();

Podemos configurar a data atual representada por um objeto do tipo Calendar por meio de um objeto Date.

calendario.setTime(data);

Operações com datas são facilitadas pelos métodos roll() e add(). Para adicionar, à data atual, meses ou dias, fazemos:

calendario.add(Calendar.MONTH,1); \\será adicionado um mês à data atual.
calendario.add(DAY_OF_WEEK,3); \calendario.add(Calendar.HOUR,-5);\\a data atual será subtraída de 5 horas.
calendario.roll(Calendar.DAY_OF_WEEK,10);\\a data atual será acrescida de 10 dias.
\\no, entanto, se ela ultrapassar o limite do mês, este não será alterado.

A classe DateFormat provê dois métodos importantes para lidar com datas. format(Date d), que transforma um objeto do tipo Date em uma String e parse(String s) que transforma um objeto do tipo String em um objeto do tipo Date. Também a classe DateFormat é abstrata e, por isso, não pode ser instanciada diretamente. Ao invés, usamos:

DateFormat df = DateFormat.getInstance();
DateFormat df1 = DataFormat.getDateInstance();

A diferença entre ambos é que o método format() do primeiro irá produzir uma String que ela em consideração a data e a hora representados em um objeto Date, enquanto o segundo exprime apenas a data representada. O segundo método é sobrecarregado e permite que você passe como parâmetro um estilo para a formatação da data:

DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT);
df = DateFormat.getDateInstance(DateFormat.MEDIUM);
df = DateFormat.getDateInstance(DateFormat.LONG);
df = DateFormat.getDateInstance(DateFormat.FULL);

O método parse() lança a exceção ParseException e, por isso, só pode ser usado dentro da cláusula try com a captura da referida exceção. Se a String passada como argumento para o método parse() contém informações apenas sobre a data, mas não sobre a hora, então o objeto Date irá representar a data indicada e irá inicializar as horas e minutos como zerados.

Comments: Post a Comment



<< Home

Archives

March 2006   April 2006   May 2006   July 2006   August 2006  

This page is powered by Blogger. Isn't yours?