Java Data e Hora

Vamos primeiro entender os parรขmetros que consistem em um Data.

Como usar a data em Java

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

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

Resuma esta postagem com: