terça-feira, 26 de agosto de 2008

Trabalhando com datas em Java

AVISO 29/11/2014 - Com o Java 8 foram feitas várias melhorias na API de datas do Java. Pretendo mostrar exemplos destas melhorias em outra postagem. O conteúdo abaixo serve para as versões anteriores ao Java 8.

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

segunda-feira, 25 de agosto de 2008

Java é linguagem de programação mais popular, segundo estudo

Por Redação Computerworld
Publicada em 11 de agosto de 2008 às 09h16
http://idgnow.uol.com.br/computacao_corporativa/2008/08/11/java-e-linguagem-de-programacao-mais-popular-segundo-estudo/


São Paulo - De acordo com pesquisa da Tiobe, o Java mantém boa margem sobre a segunda colocada, a C. Cobol caiu 3 posições no último ano.

Java continua tendo a preferência dos desenvolvedores, segundo a pesquisa Tiobe Programming Community, que indica a popularidade das linguagens de programação. Apesar de ter apresentado ligeira queda nos últimos doze meses, o Java mantém boa liderança sobre a segunda colocada C. A pesquisa está disponível na íntegra, em inglês.

O (Visual)Basic está em terceiro lugar, seguido da C++, PHP e Python. Todas estas linguagens permaneceram na mesma posição em que estavam há um ano.

As maiores subidas de ranking foram dadas pela Pascal, que saltou da posição 24 para a 16, e da PowerShell, que não constava na lista em agosto de 2007 e agora ocupa a 15ª posição. Destaque negativo para a linguagem COBOL, que despencou três posições para a 19ª colocação.

O ranking feito pela Tiobe, empresa especializada em análise de qualidade de software, é baseado em pesquisas feitas nos principais buscadores de internet (clique aqui e entenda como funciona a pesquisa — em inglês). A lista é atualizada mensalmente.

segunda-feira, 18 de agosto de 2008

Minha primeira postagem!

Olá! Esta é minha primeira postagem no blog.

Neste blog pretendo publicar dicas e novidades sobre a linguagem de programação Java.

Sintam-se à vontade para enviar seus comentários.