TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Arquivos

Seminário: Arquivos. Pesquise 860.000+ trabalhos acadêmicos

Por:   •  22/3/2014  •  Seminário  •  1.166 Palavras (5 Páginas)  •  360 Visualizações

Página 1 de 5

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

...

Baixar como  txt (11.2 Kb)  
Continuar por mais 4 páginas »