Você está na página 1de 23

Tecnologia em Sistemas para Internet - IFMS

Aula Extra Manipulao de Datas em Java


Tpicos em Programao
Prof. Msc. Sidney Roberto de Sousa

O que veremos nesta aula?

As classes Date e Calendar da linguagem Java Converso de Date para String e vice e versa Manipulao de datas de mscaras variadas Trabalhando com dias, meses, anos, horas, minutos e segundos com o tipo Date

Tec. em Sistemas para Internet - IFMS

A classe Date

A JDK oferece a classe Date do pacote java.util para o armazenamento e manipulao de datas A classe Date permite manipular datas em diversos formatos, podendo ser utilizada de forma coerente em diversos padres mundiais

Tec. em Sistemas para Internet - IFMS

Exemplo 1: Pegando a data atual


DatedataAtual=newDate(); System.out.print(dataAtual); /*Seexecutadonodia18deabrilde2013, *exibirastringabaixo: *ThuApr1800:02:29AMT2013 */

Tec. em Sistemas para Internet - IFMS

Exemplo 1: Pegando a data atual


DatedataAtual=newDate(); System.out.print(dataAtual); /*Seexecutadonodia18deabrilde2013, *exibirastringabaixo: *ThuApr1800:02:29AMT2013 */

Dia da semana (quinta-feira)


Tec. em Sistemas para Internet - IFMS 5

Exemplo 1: Pegando a data atual


DatedataAtual=newDate(); System.out.print(dataAtual); /*Seexecutadonodia18deabrilde2013, *exibirastringabaixo: *ThuApr1800:02:29AMT2013 */

Ms (abril)
Tec. em Sistemas para Internet - IFMS 6

Exemplo 1: Pegando a data atual


DatedataAtual=newDate(); System.out.print(dataAtual); /*Seexecutadonodia18deabrilde2013, *exibirastringabaixo: *ThuApr1800:02:29AMT2013 */

Dia do ms
Tec. em Sistemas para Internet - IFMS 7

Exemplo 1: Pegando a data atual


DatedataAtual=newDate(); System.out.print(dataAtual); /*Seexecutadonodia18deabrilde2013, *exibirastringabaixo: *ThuApr1800:02:29AMT2013 */

Horrio atual
Tec. em Sistemas para Internet - IFMS 8

Exemplo 1: Pegando a data atual


DatedataAtual=newDate(); System.out.print(dataAtual); /*Seexecutadonodia18deabrilde2013, *exibirastringabaixo: *ThuApr1800:02:29AMT2013 */

Sistema de tempo utilizado (no caso, Amazon Time)


Tec. em Sistemas para Internet - IFMS 9

Exemplo 1: Pegando a data atual


DatedataAtual=newDate(); System.out.print(dataAtual); /*Seexecutadonodia18deabrilde2013, *exibirastringabaixo: *ThuApr1800:02:29AMT2013 */

Ano
Tec. em Sistemas para Internet - IFMS 10

Exemplo 2: Pegando outra data explicitamente com a classe Calendar


/* *Parapegarumadataquenosejaaatualdeformaexplcita, *precisoutilizarantesaclasseCalendardopacotejava.util */ Calendarcalendario=Calendar.getInstance(); /* *OmtodosetdaclasseCalendarrecebe3argumentos:ano,ms(valor *entre[0..11],respectivamente[Janeiro..Dezembro])ediadoms */ calendario.set(2010,11,23); DateoutraData=calendario.getTime(); System.out.println(outraData); /* *Imprimenatela:ThuDec2300:24:03AMST2010 */

Tec. em Sistemas para Internet - IFMS

11

Exemplo 3: Comparando datas


Datedata1=newDate(); Calendarcalendario=Calendar.getInstance(); calendario.set(1991,1,27); Datedata2=calendario.getTime(); /* *OmtodoafterdaclasseDateverificaseadata *doobjetoatualvemdepoisdadatadoargumento */ booleandataUmEMaisAtual=data1.after(data2); System.out.println(dataUmEMaisAtual);//Imprimetrue

Tec. em Sistemas para Internet - IFMS

12

Exemplo 3: Comparando datas


Datedata1=newDate(); Calendarcalendario=Calendar.getInstance(); calendario.set(1991,1,27); Datedata2=calendario.getTime(); /* *OmtodobeforedaclasseDateverificaseadata *doobjetoatualvemantesdadatadoargumento */ booleandataUmEMaisAtual=data1.before(data2); System.out.println(dataUmEMaisAtual);//Imprimefalse

Tec. em Sistemas para Internet - IFMS

13

Exemplo 3: Comparando datas


Datedata1=newDate(); Calendarcalendario=Calendar.getInstance(); calendario.set(1991,1,27); Datedata2=calendario.getTime(); /* *OmtodoequalsdaclasseDateverificaseadata *doobjetoatualigualdatadoargumento */ booleandatasSaoIguais=data1.equals(data2); System.out.println(datasSaoIguais);//Imprimefalse

Tec. em Sistemas para Internet - IFMS

14

Exemplo 4: Converso de Date para String


Datedata=newDate(); /* *ConversosimplesdeDatepara *String */ StringstringData=""+data; System.out.println(stringData);
Tec. em Sistemas para Internet - IFMS 15

Exemplo 4: Converso de Date para String


Datedata=newDate(); /* *AclasseSimpleDateFormatdopacotejava.textoferecemeios *paraaformataodedatasemvriospadres. */ SimpleDateFormatformatadorDeDatas=newSimpleDateFormat("dd/MM/yyyy"); StringstringData=formatadorDeDatas.format(data); //Exibeadatanoformatodd/mm/aaaa System.out.println(stringData);

Tec. em Sistemas para Internet - IFMS

16

Exemplo 4: Converso de Date para String


Datedata=newDate(); /* *AclasseSimpleDateFormatdopacotejava.textoferecemeios *paraaformataodedatasemvriospadres. */ SimpleDateFormatformatadorDeDatas=newSimpleDateFormat("yyyyMMdd"); StringstringData=formatadorDeDatas.format(data); //Exibeadatanoformatoaaaammdd System.out.println(stringData);

Tec. em Sistemas para Internet - IFMS

17

Exemplo 4: Converso de Date para String


Datedata=newDate(); /* *AclasseSimpleDateFormatdopacotejava.textoferecemeios *paraaformataodedatasemvriospadres. */ SimpleDateFormatformatadorDeDatas=newSimpleDateFormat("dd/MM/yyyyhh:mm:ss"); StringstringData=formatadorDeDatas.format(data); //Exibeadataehorrionoformatodd/mm/aaaahh:mm:ss System.out.println(stringData);

Tec. em Sistemas para Internet - IFMS

18

Exemplo 4: Converso de Date para String


Datedata=newDate(); /* *AclasseSimpleDateFormatdopacotejava.text *oferecemeiosparaaformataodedatasemvrios *padres. */ SimpleDateFormatformatadorDeDatas=newSimpleDateFormat("hh:mm:ss"); StringstringData=formatadorDeDatas.format(data); //Exibeohorrioatual System.out.println(stringData);

Tec. em Sistemas para Internet - IFMS

19

Entendendo as mscaras de data


d dia do ms D dia do ano F dia da semana no ms a marcador de am/pm w semana do ano W semana do ms M ms 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 z Sistema de tempo (general time zone) Z Sistema de tempo (RFC 822 time zone) G designador de era (ex.: AD)

Tec. em Sistemas para Internet - IFMS

20

Exemplo 5: Converso de String para Date


StringstringData="18/09/2011"; SimpleDateFormatformatadorDeDatas=newSimpleDateFormat("dd/MM/yyyy"); Datedata; try{ /* *OmtodoparsedaclasseSimpleDateFormatrealizaaconversode *umastringcontendoainformaodeumadataespecficaemum *objetoDate.Omtodopodelanarumaexceocasoastring *informadanopossuaainformaocorretadeumadata.Notequeneste *exemploamscarautilizadanoformatadorcompatvelcomadatacontida *navarivelstringData.Seamscaranoforcompatvelcomainformaoda *datacorrespondente,omtodoparselanarumaexceo. */ data=formatadorDeDatas.parse(stringData); }catch(ParseExceptione){ e.printStackTrace(); } System.out.println(data);

Tec. em Sistemas para Internet - IFMS

21

Exemplo 6: Pegando partes da data


Calendarcalendar=Calendar.getInstance(); /* *OmtodogetdaclasseCalendarretornaainforma odesejada *referentedataarmazenadanoobjetoCalendar.Nopr ximoslide, *vejaasconstantesreferentesacadatipodeinforma o. */ intdiaDoMes=calendar.get(Calendar. DAY_OF_MONTH); //Lembresequeonmerodomsvariaentre[0..1] intnumeroMes=calendar.get(Calendar.MONTH)+1; intano=calendar.get(Calendar.YEAR); System.out.println(diaDoMes+"/"+numeroMes+"/"+ano);

Tec. em Sistemas para Internet - IFMS

22

Constantes da classe Calendar


Calendar.AM_PM perodo do dia (am ou pm) Calendar.DAY_OF_MONTH dia do ms Calendar.DAY_OF_WEEK dia da semana Calendar.DAY_OF_WEEK_IN_MONTH dia da semana no ms Calendar.DAY_OF_YEAR dia do ano Calendar.ERA designao de era Calendar.HOUR hora (0 a 11) Calendar.HOUR_OF_DAY hora (0 a 23) Calendar.MILLISECOND milissegundos Calendar.MINUTE minutos Calendar.MONTH ms Calendar.SECOND segundos Calendar.WEEK_OF_MONTH semana da ms Calendar.WEEK_OF_YEAR semana do ano Calendar.YEAR ano

Tec. em Sistemas para Internet - IFMS

23