Java Data e Hora
Vamos primeiro entender os parรขmetros que consistem em um Data.
Ele conterรก principalmente -
- As ano (em 2 ou 4 dรญgitos)
- As mรชs (em 2 dรญgitos, nas primeiras 3 letras do mรชs ou na palavra inteira do mรชs).
- As dados (serรก a data real do mรชs).
- As dia (o dia na data especificada โ como domingo, segunda, terรงa, etc.)
No que diz respeito aos sistemas informรกticos, existem vรกrios parรขmetros que podem ser utilizados para associar a uma data. Iremos vรช-los nas partes posteriores deste tรณpico.
Exibir data em Java
Agora vamos ver como Java forneรงa-nos a data. Primeiro, veremos como obter a data atual-
Java fornece uma classe Date no pacote java.util. O pacote fornece vรกrios mรฉtodos para brincar com a data.
Vocรช pode usar o objeto Date invocando o construtor da classe Date da seguinte maneira:
import java.util.Date;
class Date_Ex1 {
public static void main(String args[]) {
// Instantiate a Date object by invoking its constructor
Date objDate = new Date();
// Display the Date & Time using toString()
System.out.println(objDate.toString());
}
}
Saรญda:
Wed Nov 29 06:36:22 UTC 2017
No exemplo acima, data mostrada no formato padrรฃo. Se quisermos mostrar a data e a hora em outro formato, primeiro entenda a formataรงรฃo da data.
SimpleDateFormat: analisar e formatar datas
Todos vocรชs devem ter aprendido o alfabeto no jardim de infรขnciaโฆ.
Vamos agora aprender o ABC do formato da data.
| Carta | Componente de data ou hora | Exemplos |
|---|---|---|
| G | Designador de era | AD |
| y | Ano | 2018 |
| M | Mรชs no ano | Julho ou julho ou 07 |
| w | Semana no ano | 27 |
| W | Semana no mรชs | 2 |
| D | Dia no ano | 189 |
| d | Dia no mรชs | 10 |
| F | Dia da semana no mรชs | 2 |
| E | Nome do dia na semana | Terรงa ou Terรงa |
| u | Nรบmero do dia da semana (1 = Monday, โฆ, 7 = Domingo) | 1 |
| a | Marcador am / pm | PM |
| H | Hora do dia (0-23) | 0 |
| k | Hora do dia (1-24) | 24 |
| K | Hora em am / pm (0-11) | 0 |
| h | Hora em am / pm (1-12) | 12 |
| m | Minuto em hora | 30 |
| s | Segundo em minuto | 55 |
| S | Milissegundo | 978 |
| z | fuso horรกrio | Hora padrรฃo do Pacรญfico; PST; GMT-08: 00 |
| Z | fuso horรกrio | -0800 |
| X | fuso horรกrio | -08 ou -0800 ou -08:00 |
Nรฃo se preocupe, vocรช nรฃo precisa se lembrar de tudo isso, eles podem ser consultados sempre que vocรช precisar formatar uma data especรญfica.
Como usar o SimpleDateFormat?
Java fornece uma classe chamada SimpleDateFormat que permite formatar e analisar datas conforme seus requisitos.
Vocรช pode usar os caracteres acima para especificar o formato-
Por exemplo:
1) Formato de data necessรกrio: 2012.10.23/20/20 45:XNUMX:XNUMX PST
O formato de data apropriado especificado serรก- aaaa.MM.dd HH:mm:ss zzz
2) Formato de data necessรกrio:09:30:00 AM 23-May-2012
O formato de data apropriado especificado serรก-hh:mm:ss a dd-MMM-aaaa
Dica: Tenha cuidado com a capitalizaรงรฃo das letras. Se vocรช confundir M com m, obterรก resultados indesejados!
Vamos aprender isso com um exemplo de cรณdigo.
import java.text.SimpleDateFormat;
import java.util.Date;
class TestDates_Format {
public static void main(String args[]) {
Date objDate = new Date(); // Current System Date and time is assigned to objDate
System.out.println(objDate);
String strDateFormat = "hh:mm:ss a dd-MMM-yyyy"; //Date format is Specified
SimpleDateFormat objSDF = new SimpleDateFormat(strDateFormat); //Date format string is passed as an argument to the Date format object
System.out.println(objSDF.format(objDate)); //Date formatting is applied to the current date
}
}
Saรญda:
Wed Nov 29 06:31:41 UTC 2017 06:31:41 AM 29-Nov-2017
Exemplo de comparaรงรฃo de datas
O mรฉtodo mais รบtil de comparar datas รฉ usar o mรฉtodo โ compareTo()
Vamos dar uma olhada no trecho de cรณdigo abaixo-
import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.Date;
class TestDates_Compare {
public static void main(String args[]) throws ParseException {
SimpleDateFormat objSDF = new SimpleDateFormat("dd-mm-yyyy");
Date dt_1 = objSDF.parse("20-08-1981");
Date dt_2 = objSDF.parse("12-10-2012");
System.out.println("Date1 : " + objSDF.format(dt_1));
System.out.println("Date2 : " + objSDF.format(dt_2));
if (dt_1.compareTo(dt_2) > 0) {
System.out.println("Date 1 occurs after Date 2");
} // compareTo method returns the value greater than 0 if this Date is after the Date argument.
else if (dt_1.compareTo(dt_2) < 0) {
System.out.println("Date 1 occurs before Date 2");
} // compareTo method returns the value less than 0 if this Date is before the Date argument;
else if (dt_1.compareTo(dt_2) == 0) {
System.out.println("Both are same dates");
} // compareTo method returns the value 0 if the argument Date is equal to the second Date;
else {
System.out.println("You seem to be a time traveller !!");
}
}
}
Saรญda:
Date1 : 20-08-1981 Date2 : 12-10-2012 Date 1 occurs before Date 2


