O documento discute a manipulação de datas em Java, cobrindo classes como Date, Calendar, GregorianCalendar e formatos. Ele explica como imprimir, formatar e comparar datas, além de tratar de internacionalização e diferenças entre datas.
1. Manipulação de datas
em Java
IF Goiano campus Morrinhos
Técnico em Informática Integrado ao Ensino Médio
Linguagens e Técnicas de Programação
Prof. Me. Norton Guimarães
1
2. O que veremos?
Manipulação de datas
java.util.Date;
java.util.Calendar;
java.util.GregorianCalendar;
java.util.Locale
Máscaras de datas
concatenação de string
java.text.SimpleDateFormat
java.text.DateFormat
Técnico em Informática – IF Goiano campus Morrinhos 2
4. Classe java.util.Date
A JDK (Java Development Kit), fornece as
classes java.util.Date para o
armazenamento e manipulação de datas.
A classe Date, permite manipular datas em
diversos formatos, podendo ser utilizada
em diversos padrões mundiais.
Técnico em Informática – IF Goiano campus Morrinhos 4
5. Imprimir data com java.util.Date
import java.util.Date;
public class Funcionarios {
public void imprimirDataHoje() {
Date dataHoje = new Date();
System.out.println(dataHoje);
}
}
Técnico em Informática – IF Goiano campus Morrinhos 5
6. Imprimir data com java.util.Calendar
import java.util.Date;
Import java.util.Calendar;
public class Funcionarios {
public void imprimirDataCalendar(){
Calendar calendario = Calendar.getInstance();
calendario.set(2015, 11, 12);
Date dataCalendario = calendario.getTime();
System.out.println(dataCalendario);
}
}
Técnico em Informática – IF Goiano campus Morrinhos 6
7. Imprimir data com java.util.GregorianCalendar
Import java.util.GregorianCalendar;
public class Funcionarios {
public void imprimirDataGregoriana() {
GregorianCalendar dataGC = new GregorianCalendar();
//Mostra o dia da semana: 1 = Domingo, etc
System.out.println(dataGC.get(dataGC.DAY_OF_WEEK));
//Verifica se o ano é bissexto
System.out.println(dataGC.isLeapYear(2009));
//Atribui uma data diferente da atual
dataGC.set(2015, 11, 12);
}
}
//Mostra o dia
System.out.println(dataGC.get(dataGC.DATE));
//Mostra o Mês: 1 = Janeiro, 2 = Fevereiro, etc
System.out.println(dataGC.get(dataGC.MONTH));
//Mostra o ano
System.out.println(dataGC.get(dataGC.YEAR));
Técnico em Informática – IF Goiano campus Morrinhos 7
8. Comparar Datas
import java.util.Date;
Import java.util.Calendar;
public class Funcionarios {
public void compararDatas(){
Date dataUm = new Date();
Calendar calendario = Calendar.getInstance();
calendario.set(2015, 10, 25);
Date dataDois = calendario.getTime();
boolean dataSaoIguais = dataUm.equals(dataDois);
boolean dataDoisPosterior = dataUm.after(dataDois);
boolean dataDoisAnterior = dataUm.before(dataDois);
}
}
Técnico em Informática – IF Goiano campus Morrinhos 8
9. Internacionalização de datas
import java.util.Calendar;
import java.util.Locale;
import java.text.DateFormat;
import java.util.Date;
public class Funcionarios {
public void dataInternaciona() {
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;
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));
}
}Técnico em Informática – IF Goiano campus Morrinhos 9
11. Conversão de data para string com
concatenação
import java.util.Date;
public class Funcionarios {
public void imprimeData(){
Date dataUm = new Date();
String dataString = “Data: ” + dataUm;
System.out.printiln(dataString);
}
}
Técnico em Informática – IF Goiano campus Morrinhos 11
12. Formatação de data com a classe
java.text.SimpleDateFormat
import java.util.Date;
Import java.text.SimpleDateFormat;
public class Funcionarios {
public void formataData(){
Date dataUm = new Date();
SimpleDateFormat formataDatas = new SimpleDateFormat("dd/MM/yyyy");
//Outras máscaras podem ser fornecidas: “yyyy-MM-dd”, “dd/MM/yyyy hh:mm:ss”, “hh:mm:ss”.
String dataFormatada = formataDatas.format(dataUm);
System.out.println(dataFormatada);
}
}
Técnico em Informática – IF Goiano campus Morrinhos 12
13. Legenda das Máscaras de datas
d dia do mês
D dia do ano
F dia da semana no mês
a marcador de am/pm
w semana do ano
W semana do mês
M mês
m minuto
y ano
h hora em am/pm (1 a 12)
H hora do dia (0 a 23)
k hora do dia (1 a 24)
K hora em am/pm (0 a 11)
s segundos
S milissegundos
Técnico em Informática – IF Goiano campus Morrinhos 13
14. Formatação Date com a classe
java.text.DateFormat
import java.util.Date;
Import java.text.DateFormat;
import java.util.Calendar;
public class Funcionarios {
public void converterStringParaData(){
Calendar c = Calendar.getInstance();
c.set(2015, Calendar.FEBRUARY, 21);
Date data = c.getTime();
DateFormat formataData = DateFormat.getDateInstance(); //Formata a data
System.out.println("Data atual com formatação: "+ formataData.format(data));
DateFormat dtHora = DateFormat.getDateTimeInstance(); //Formata Data e Hora
System.out.println(dtHora.format(data));
}
}Técnico em Informática – IF Goiano campus Morrinhos 14
15. Conversão de string para Date com a
classe java.text.SimpleDateFormat
import java.util.Date;
Import java.text.SimpleDateFormat;
public class Funcionarios {
public void converterStringParaData(){
String dataString = "15/11/2014";
SimpleDateFormat formataDatas = new SimpleDateFormat("dd/MM/yyyy");
Date data = null;
try {
data = formataDatas.parse(dataString);
} catch (ParseException ex) {
System.out.println(ex);
}
System.out.println(data);
}
}
Técnico em Informática – IF Goiano campus Morrinhos 15
16. Diferenças entre datas
import java.util.Date;
import java.text.SimpleDateFormat;
public class Funcionarios {
public void diferencaEntreDatas() {
SimpleDateFormat sdf = new SimpleDateFormat("dd/mm/yyyy");
try {
Date date1 = sdf.parse("05/11/2015");
Date date2 = sdf.parse("06/11/2015");
long differenceMilliSeconds = date2.getTime() - date1.getTime();
System.out.println("diferenca em milisegundos: " + differenceMilliSeconds);
System.out.println("diferenca em segundos: " + (differenceMilliSeconds / 1000));
System.out.println("diferenca em minutos: " + (differenceMilliSeconds / 1000 / 60));
System.out.println("diferenca em horas: " + (differenceMilliSeconds / 1000 / 60 / 60));
System.out.println("diferenca em dias: " + (differenceMilliSeconds / 1000 / 60 / 60 / 24));
} catch (ParseException e) {
e.printStackTrace();
}
}
}
Técnico em Informática – IF Goiano campus Morrinhos 16
17. Referências
DEITEL, H. M.; DEITEL, P. J. Java: como programar. 6. ed. São Paulo, SP:
Pearson, 2005. xl, 1110 p. ISBN 9798576050193.
HANSEN, Vitor Yudi. Manipulando datas em java. DevMedia. Disponível em:
http://www.devmedia.com.br/manipulando-datas-em-java/21765. Acesso
em: 11 nov. 2015.
PALMEIRA, Thiago Vinícius Varallo. DevMedia. Disponível em:
http://www.devmedia.com.br/trabalhando-com-as-classes-date-calendar-e-
simpledateformat-em-java/27401. Acesso em: 11 nov. 2015.
SANTOS, Rafael. Introdução à programação orientada a objetos usando Java.
Rio de Janeiro, RJ: Elsevier, 2003. 319 p. ISBN 9788535212068.
SOUSA, Sidney Roberto de. Aula extra – Manipulação de datas em java. Mato
Grosso. Disponível em: http://pt.slideshare.net/darknessdescend/manipulao-
de-datas-em-java. Acesso em: 11 nov. 2015.
Técnico em Informática – IF Goiano campus Morrinhos 17