Java Date & Hora: SimpleDateFormat, Current Date & Comparar

Índice:

Anonim

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