Neste tutorial, você aprenderá -
- Exibir data atual em Java
- SimpleDateFormat: analisar e formatar datas
- Exemplo de comparação de datas
Vamos primeiro entender os parâmetros que consistem em uma Data .
Irá conter principalmente -
- O ano (em 2 ou 4 dígitos)
- O mês (em 2 dígitos, primeiras 3 letras do mês ou a palavra inteira do mês).
- A data (será a data real do mês).
- O dia (o dia na data especificada - como Sol, Seg, Ter, etc.)
No que diz respeito aos sistemas de computador, existem vários parâmetros que podem ser usados para associar a uma data. Vamos vê-los nas partes posteriores deste tópico.
Exibir data em Java
Agora vamos ver como o Java nos fornece 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 constructorDate objDate = new Date();// Display the Date & Time using toString()System.out.println(objDate.toString());}}
Resultado:
Wed Nov 29 06:36:22 UTC 2017
No exemplo acima, data mostrada no formato padrão, se quisermos mostrar a data e 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 de data.
Carta | Componente de data ou hora | Exemplos |
---|---|---|
G | Designador de era | DE ANÚNCIOS |
y | Ano | 2018 |
M | Mês no ano | Julho ou julho ou 07 |
C | Semana no ano | 27 |
C | 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 |
você | Número do dia da semana (1 = segunda-feira, ..., 7 = domingo) | 1 |
uma | 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 todos eles, eles podem ser encaminhados a qualquer momento que você precisar formatar uma data específica.
Como usar o SimpleDateFormat?
Java fornece uma classe chamada SimpleDateFormat que permite formatar e analisar datas de acordo com seus requisitos.
Você pode usar os caracteres acima para especificar o formato - por exemplo:
1) Formato de data obrigatório: 2012.10.23 20:20:45 PST
O formato de data apropriado especificado será aaaa.MM.dd HH: mm: ss zzz
2) Formato de data obrigatório: 09:30:00 23 de maio de 2012
O formato de data apropriado especificado será- hh: mm: ss a dd-MMM-aaaa
Dica: Cuidado com a capitalização das letras. Se você confundir M com m, terá 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 objDateSystem.out.println(objDate);String strDateFormat = "hh:mm:ss a dd-MMM-yyyy"; //Date format is SpecifiedSimpleDateFormat objSDF = new SimpleDateFormat(strDateFormat); //Date format string is passed as an argument to the Date format objectSystem.out.println(objSDF.format(objDate)); //Date formatting is applied to the current date}}
Resultado:
Wed Nov 29 06:31:41 UTC 201706:31:41 AM 29-Nov-2017
Exemplo de comparação de datas
O método mais útil de comparação de datas é usando o método - compareTo ()
Vamos dar uma olhada no snippet 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 !!");}}}Resultado:
Date1 : 20-08-1981Date2 : 12-10-2012Date 1 occurs before Date 2