Manipulando datas com Java - Date


Autor : Roberto Lima | Data : 02/05/2019

Para manipular datas no Java, é preciso importar as bibliotecas java.text.ParseException, java.text.SimpleDateFormat, java.time.Instant, java.util.Calendar, java.util.Date e java.util.TimeZone.
Veja abaixo como abrir uma sessão Java com Entry Point e como a importação das bibliotecas devem ser feita:

package app; public class Program { public static void main(String[] args) { } } Importe as bibliotecas como no exemplo abaixo: package app; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.Instant; import java.util.Calendar; import java.util.Date; import java.util.TimeZone; public class Program { public static void main(String[] args) throws ParseException { } }

Defina os formatos de como as datas serão impressas, como nos exemplos abaixo:

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); SimpleDateFormat sdf1 = new SimpleDateFormat("dd/MM/yyyy"); SimpleDateFormat sdf2 = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); SimpleDateFormat sdf3 = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); sdf3.setTimeZone(TimeZone.getTimeZone("GMT")); Defina as variáveis de datas, tanto dinâmicas quanto estáticas, veja abaixo: Date x1 = new Date(); Date x2 = new Date(System.currentTimeMillis()); Date x3 = new Date(0L); Date x4 = new Date(1000L *60L *60L * 3L); Date y1 = sdf1.parse("25/06/2018"); Date y2 = sdf2.parse("25/06/2018 15:42:18"); Date y3 = Date.from(Instant.parse("2018-06-25T15:42:07Z")); Utilize o Calendar para seleção de datas específicas. Date d = Date.from(Instant.parse("2018-06-25T15:42:07Z"));

Faça impressões sem os formatos definidos:

System.out.println("x1: "+x1); System.out.println("x2: "+x2); System.out.println("x3: "+x3); System.out.println("x4: "+x4); System.out.println("y1: "+y1); System.out.println("y2: "+y2); System.out.println("y3: "+y3); Resultado das impressões: x1: Thu May 02 14:27:04 BRT 2019 x2: Thu May 02 14:27:04 BRT 2019 x3: Wed Dec 31 21:00:00 BRT 1969 x4: Thu Jan 01 00:00:00 BRT 1970 y1: Mon Jun 25 00:00:00 BRT 2018 y2: Mon Jun 25 15:42:18 BRT 2018 y3: Mon Jun 25 12:42:07 BRT 2018

Faça impressões com os formatos definidos:

System.out.println("x1: "+sdf2.format(x1)); System.out.println("x2: "+sdf2.format(x2)); System.out.println("x3: "+sdf2.format(x3)); System.out.println("x4: "+sdf2.format(x4)); System.out.println("y1: "+sdf2.format(y1)); System.out.println("y2: "+sdf2.format(y2)); System.out.println("y3: "+sdf2.format(y3)); Resultado das impressões: x1: 02/05/2019 14:27:04 x2: 02/05/2019 14:27:04 x3: 31/12/1969 21:00:00 x4: 01/01/1970 00:00:00 y1: 25/06/2018 00:00:00 y2: 25/06/2018 15:42:18 y3: 25/06/2018 12:42:07

Faça impressões com os formatos definidos utilizando a referência UTC:

System.out.println("x1: "+sdf3.format(x1)); System.out.println("x2: "+sdf3.format(x2)); System.out.println("x3: "+sdf3.format(x3)); System.out.println("x4: "+sdf3.format(x4)); System.out.println("y1: "+sdf3.format(y1)); System.out.println("y2: "+sdf3.format(y2)); System.out.println("y3: "+sdf3.format(y3)); Resultado das impressões: x1: 02/05/2019 17:27:04 x2: 02/05/2019 17:27:04 x3: 01/01/1970 00:00:00 x4: 01/01/1970 03:00:00 y1: 25/06/2018 03:00:00 y2: 25/06/2018 18:42:18 y3: 25/06/2018 15:42:07

Trabalhando com Calendar:

Calendar cal = Calendar.getInstance(); cal.setTime(d); cal.add(Calendar.HOUR_OF_DAY, 4); d = cal.getTime(); System.out.println("d: "+sdf.format(d)); int minutes = cal.get(Calendar.MINUTE); int month = 1 + cal.get(Calendar.MONTH); System.out.println("Minutes: "+ minutes); System.out.println("Month: "+ month); Resultado das impressões: d: 25/06/2018 12:42:07 d: 25/06/2018 16:42:07 Minutes: 42 Month: 6

Código fonte do artigo:

package app; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.Instant; import java.util.Calendar; import java.util.Date; import java.util.TimeZone; public class Program { public static void main(String[] args) throws ParseException { // Definindo os formatos SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); SimpleDateFormat sdf1 = new SimpleDateFormat("dd/MM/yyyy"); SimpleDateFormat sdf2 = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); SimpleDateFormat sdf3 = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); sdf3.setTimeZone(TimeZone.getTimeZone("GMT")); // Definindo as variáveis de data Date x1 = new Date(); Date x2 = new Date(System.currentTimeMillis()); Date x3 = new Date(0L); Date x4 = new Date(1000L *60L *60L * 3L); // Definindo variáveis estáticas de data Date y1 = sdf1.parse("25/06/2018"); Date y2 = sdf2.parse("25/06/2018 15:42:18"); Date y3 = Date.from(Instant.parse("2018-06-25T15:42:07Z")); // Calendar Date d = Date.from(Instant.parse("2018-06-25T15:42:07Z")); // Impressão sem formato definido System.out.println("x1: "+x1); System.out.println("x2: "+x2); System.out.println("x3: "+x3); System.out.println("x4: "+x4); System.out.println("y1: "+y1); System.out.println("y2: "+y2); System.out.println("y3: "+y3); System.out.println("--------------------------"); System.out.println("LOCAL"); // Impressão com hora local System.out.println("x1: "+sdf2.format(x1)); System.out.println("x2: "+sdf2.format(x2)); System.out.println("x3: "+sdf2.format(x3)); System.out.println("x4: "+sdf2.format(x4)); System.out.println("y1: "+sdf2.format(y1)); System.out.println("y2: "+sdf2.format(y2)); System.out.println("y3: "+sdf2.format(y3)); System.out.println("-----------------------"); System.out.println("UTC"); // Impressão com horário UTC System.out.println("x1: "+sdf3.format(x1)); System.out.println("x2: "+sdf3.format(x2)); System.out.println("x3: "+sdf3.format(x3)); System.out.println("x4: "+sdf3.format(x4)); System.out.println("y1: "+sdf3.format(y1)); System.out.println("y2: "+sdf3.format(y2)); System.out.println("y3: "+sdf3.format(y3)); System.out.println("-----------------------"); System.out.println("CALENDAR"); // Impressao utilizando calendar System.out.println("d: "+sdf.format(d)); Calendar cal = Calendar.getInstance(); cal.setTime(d); cal.add(Calendar.HOUR_OF_DAY, 4); d = cal.getTime(); System.out.println("d: "+sdf.format(d)); int minutes = cal.get(Calendar.MINUTE); int month = 1 + cal.get(Calendar.MONTH); System.out.println("Minutes: "+ minutes); System.out.println("Month: "+ month); } }


Links Adicionais
Java 11 Oracle - Date

Referência:
Referência do artigo

Faça um comentário:

Comentários: