Arquivos
Seminário: Arquivos. Pesquise 862.000+ trabalhos acadêmicosPor: • 22/3/2014 • Seminário • 1.166 Palavras (5 Páginas) • 374 Visualizações
CONTEÚDO ▼
REVISTAS ▼
CURSOS ▼
POCKET VIDEOS
DEVWARE
FÓRUM
MVP
LOGIN
DevMedia
post favorito comentários
Trabalhando com as classes Date, Calendar e SimpleDateFormat em Java
Veja neste artigo como manipular as classes Date, Calendar e SimpleDateFormat, a converter Strings para tipos data e vice versa. Aprenda a internacionalizar as datas de acordo com a região e saiba algumas particularidades dessas classes.
Gostei (6) (0)
Introdução
As classes apresentadas neste artigo demonstram como a programação em Java consegue manipular as datas, horas e internacionalizá-las. No Java o tempo é representado em milissegundos, sendo medido a partir da data 01/01/1970. Essa data pode ser recuperada através do comando System.currentTimeMillis().
Abaixo são mostradas as principais classes utilizadas quando se trata de algum dado que envolva datas.
Trabalhando com datas no Java
Figura 1: Trabalhando com datas no Java
Classe Date
A data representa o tempo, um tempo é composto por ano, mês, dia atual, minuto atual, entre outras propriedades que essa classe possui.
Como referência, este link http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Date.html mostra todos os detalhes de métodos e construtores que a classe Date do pacote java.util possui.
Hoje a maioria dos métodos da classe Date estão classificados como deprecated (depreciados), ou seja, são métodos que não são mais utilizados, por isso essa classe foi substituída pela classe Calendar, para haver suporte correto à internacionalização do sistema de datas.
Na listagem 1 é instanciada a classe Date e exibida a data atual em detalhes.
Listagem 1: Testando a classe Date.
import java.util.Date;
public class Testa_Date {
public static void main(String[] args) {
Date data = new Date();
System.out.println("Data Agora: "+data);
}
}
Classe Calendar
Essa classe pode produzir os valores de todos os campos de calendário necessários para implementar a formatação de data e hora, para uma determinada língua e estilo de calendário. Por exemplo, japonês, americano, italiano, brasileiro entre outros.
A classe Calendar é a mais usada quando se trata de datas, mas como é uma classe abstrata, não pode ser instanciada, portanto para obter um calendário é necessário usar o método estático getInstance(), apresentado no exemplo da listagem 2.
Listagem 2: Recuperação da data com a classe Calendar
import java.util.Calendar;
public class Data_Calendar{
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
System.out.println("Data e Hora atual: ”+c.getTime());
}
}
Com a classe Calendar também se consegue manipular a data e hora com os métodos que são fornecidos, abaixo seguem os exemplos.
Listagem 3: Mostra o dia da semana, mês e ano
import java.util.Calendar;
public class Testa_Metodo_Get_Calendar{
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
System.out.println("Data/Hora atual: "+c.getTime());
System.out.println("Ano: "+c.get(Calendar.YEAR));
System.out.println("Mês: "+c.get(Calendar.MONTH));
System.out.println("Dia do Mês: "+c.get(Calendar.DAY_OF_MONTH));
}
}
Listagem 4: Alterando a data/hora com método set
import java.util.Calendar;
public class Testa_Metodos_Set_Get_Calendar{
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, 1995);
c.set(Calendar.MONTH, Calendar.MARCH);
c.set(Calendar.DAY_OF_MONTH, 20);
System.out.println("Data/Hora atual: "+c.getTime());
System.out.println("Ano: "+c.get(Calendar.YEAR));
System.out.println("Mês: "+c.get(Calendar.MONTH));
System.out.println("Dia do Mês: "+c.get(Calendar.DAY_OF_MONTH));
}
}
Na listagem 5, mostra-se como recuperar a hora do dia, fazendo uma interação com o usuário informando uma mensagem de boas vindas.
Listagem 5: Recuperando a hora do dia
import java.util.Calendar;
public class Msg_Boas_Vindas_Calendar{
public static void main(String[] args) {
Calendar c1 = Calendar.getInstance();
int hora = c1.get(Calendar.HOUR_OF_DAY);
if(hora > 6 && hora < 12){
System.out.println("Bom Dia");
}else if(hora > 12 && hora < 18){
System.out.println("Boa Tarde");
}else{
System.out.println("Boa Noite");
}
}
}
Para mais informações sobre a classe Calendar, acesse o link http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Calendar.html.
DateFormat
Essa classe permite converter informações do tipo String para data do tipo Date, permitindo seguir um formato. Consegue-se trabalhar ao contrário, convertendo um dado do tipo Date para uma String. Por ser uma classe abstrata, não é possível instanciá-la, por isso deve ser usado para método estático getDateInstance(). Sempre quando declarado é preciso importar o pacote java.text.
Abaixo são mostrados alguns exemplos dos métodos de formatação das datas.
Listagem 6: Formatando data atual
import java.util.Calendar;
import java.text.DateFormat;
import java.util.Date;
public class Formatando_Datas{
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
c.set(2013, Calendar.FEBRUARY, 28);
Date data = c.getTime();
System.out.println("Data atual sem formatação: "+data);
//Formata a data
DateFormat formataData = DateFormat.getDateInstance();
System.out.println("Data atual com formatação: "+ formataData.format(data));
//Formata Hora
DateFormat hora = DateFormat.getTimeInstance();
System.out.println("Hora formatada: "+hora.format(data));
//Formata Data e Hora
DateFormat dtHora = DateFormat.getDateTimeInstance();
System.out.println(dtHora.format(data));
}
}
Listagem 7: Formatações de datas
import java.util.Calendar;
import java.text.DateFormat;
import java.util.Date;
public class Formatando_Saida_Datas{
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
Date data = c.getTime();
DateFormat f = DateFormat.getDateInstance(DateFormat.FULL); //Data COmpleta
System.out.println("Data brasileira: "+f.format(data));
f = DateFormat.getDateInstance(DateFormat.LONG);
System.out.println("Data sem o dia descrito: "+f.format(data));
f = DateFormat.getDateInstance(DateFormat.MEDIUM);
System.out.println("Data resumida 1: "+f.format(data));
f = DateFormat.getDateInstance(DateFormat.SHORT);
System.out.println("Data resumida 2: "+f.format(data));
}
}
Conversões
Às vezes é preciso transformar um texto em uma data ou vice versa, para isso abaixo é exibidA a função parse e a classe SimpleDateFormat. Geralmente a classe SimpleDateFormat é mais usada quando trata-se de formatação de datas, pois já no seu construtor, quando instanciada, permite passar como argumento o formato da data desejada, como apresentada nos exemplos abaixo.
Listagem 8: Convertendo Datas com método parse e a classe SimpleDateFormat
import java.util.Calendar;
import java.text.DateFormat;
import java.util.Date;
import java.text.SimpleDateFormat;
import java.text.ParseException;
public class Conversao_Datas{
public static void main(String[] args) throws ParseException{
Calendar c = Calendar.getInstance();
Date data = c.getTime();
DateFormat f = DateFormat.getDateInstance();
Date data2 = f.parse("12/01/1995");
System.out.println(data2);
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
System.out.println("Data formatada: "+sdf.format(data));
//Converte Objetos
System.out.println(“Data convertida: ”+sdf.parse("02/08/1970"));
}
}
Para mais detalhes, acesse o link http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html.
Internacionalização das datas
O Java oferece a classe Locale, que permite definir de qual país deseja-se obter o retorno das informações, como data e hora. Nos exemplos acima não foi necessário instanciar essa classe, pois já é detectado automaticamente do computador quais são as configurações regionais. Na listagem 9 é mostrado como formatar data e hora de acordo com outros países.
Listagem 9: Internacionalizando datas
import java.util.Calendar;
import java.util.Locale;
import java.text.DateFormat;
import java.text.ParseException;
import java.util.Date;
public class Locale_Datas{
public static void main(String[] args) throws ParseException {
Calendar c = Calendar.getInstance();
Date data = c.getTime();
Locale brasil = new Locale("pt", "BR"); //Retorna do país e a língua
Locale eua = Locale.US;
Locale italia = Locale.ITALIAN;
DateFormat f2 = DateFormat.getDateInstance(DateFormat.FULL, brasil);
System.out.println(“Data e hora brasileira: ”+f2.format(data));
DateFormat f3 = DateFormat.getDateInstance(DateFormat.FULL, eua);
System.out.println(“Data e hora americana: ”+f3.format(data));
DateFormat f4 = DateFormat.getDateInstance(DateFormat.FULL, italia);
System.out.println(“Data e hora italiana: ”+f4.format(data));
}
}
Veja neste link a lista dos códigos referentes aos outros países, que podem ser usados como argumentos nos construtores da classe Locale. http://docs.oracle.com/cd/E13214_01/wli/docs92/xref/xqisocodes.html
Espero que este artigo possa ajudar e até a próxima.
Thiago Vinícius Varallo Palmeira
Um entusiasta das linguagens de programação. Fórum: varallos.com.br/foruns Site: varallos.com.br 'Deveria existir uma pitada de diletantismo na crítica. Pois o diletante é um entusiasta que ainda não se acomodou e n [...]
O que você achou deste post? Gostei (6) (0)
Poste seu comentário
Bruno Alexandre Soares Prestes
To iniciando nesse mundão chamado java, artigo me ajudou muito nos meus estudos. Obrigado parceiro!
[há +1 ano] - Responder
[autor] Thiago Vinícius Varallo Palmeira
Bom saber que o artigo teve um ponto positivo :), obrigado pelo agradecimento. Abraço!
[há +1 ano] - Responder
Allan Romanato
Muito bom seu artigo, ele aborda de uma maneira objetiva como se trabalhar com essas Classes que em algum momento da nossa vida de desenvolvedores serão muito uteis.
Parabéns
Abraço
[há +1 ano] - Responder
Conhece a assinatura MVP?
Serviços
Inclua um comentário
Adicionar aos Favoritos
Marcar como lido/assistido
Incluir anotação pessoal
Versão para impressão
+Java
Mais posts
Artigo
Restaurando Segurança no Tomcat com BadInputFilter
Artigo
Data Join com Hadoop MapReduce
Video aula
Removendo a Venda - Curso JBoss: Introdução e Aplicação MVC completa - Aula 140
Video aula
Editando a Venda - Curso JBoss: Introdução e Aplicação MVC completa - Aula 139
Video aula
Criando conversores e gravando a Venda - Curso JBoss: Introdução e Aplicação MVC completa - Aula 138
Artigo
Java BigDecimal: Trabalhando com mais precisão
Artigo
JavaServer Faces 2.2: aumento de produtividade
Artigo
HyperSQL DataBase com Hibernate: veja como utilizar
Artigo
Wrappers em Java: Aprenda como utilizar
Artigo
Servlet Filters e Event Listeners: Introdução
Listar mais conteúdo
DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Anuncie | Loja | Publique | Assine | Fale conosco
Hospedagem web por Porta 80 Web HostingTodos os Direitos Reservados a Web-03
...