Java Data și ora

Să înțelegem mai întâi parametrii care constau din a Data.

Cum se utilizează Data în Java

Acesta va conține în primul rând -

  • an (din 2 sau 4 cifre)
  • lună (din 2 cifre, primele 3 litere ale lunii sau întregul cuvânt al lunii).
  • data (va fi data efectivă a lunii).
  • zi (ziua la data dată - cum ar fi duminică, luni, marți etc.)

În ceea ce privește sistemele informatice, există destul de mulți parametri care pot fi utilizați pentru a asocia o dată. Le vom vedea în părțile ulterioare ale acestui subiect.

Afișează data în Java

Acum hai să vedem cum Java furnizați-ne Data. Mai întâi, vom vedea cum să obținem data curentă -

Java furnizează o clasă Date în pachetul java.util, Pachetul oferă mai multe metode de a juca cu data.

Puteți utiliza obiectul Date invocând constructorul clasei Date după cum urmează:

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());
 }
}

ieșire:

Wed Nov 29 06:36:22 UTC 2017

În exemplul de mai sus, data afișată în format implicit, dacă dorim să arătăm data și ora într-un alt format, mai întâi înțelegeți Formatarea datei.

SimpleDateFormat: Analizați și formatați datele

Cu toții trebuie să fi învățat alfabetele la grădiniță...

Să aflăm acum ABC-urile formatului de dată.

Scrisoare Componenta dată sau oră Exemple
G Indicator de epocă AD
y An 2018
M Lună în an iulie sau iulie sau 07
w Săptămâna în an 27
W Săptămână de lună 2
D Zi de an 189
d Zi de lună 10
F Zi a săptămânii în lună 2
E Numele zilei în săptămână marți sau marți
u Numărul zilei săptămânii (1 = Monday, …, 7 = duminica) 1
a Marker am/pm PM
H Ora în zi (0-23) 0
k Ora în zi (1-24) 24
K Ora în dimineața/pm (0-11) 0
h Ora în dimineața/pm (1-12) 12
m Minut în oră 30
s Al doilea în minut 55
S Milisecunda 978
z Zona de timp Ora standard a Pacificului; PST; GMT-08:00
Z Zona de timp -0800
X Zona de timp -08 sau -0800 sau -08:00

Nu vă faceți griji, nu trebuie să vă amintiți toate acestea, acestea pot fi trimise oricând trebuie să formatați o anumită dată.

Cum se utilizează SimpleDateFormat?

Java oferă o clasă numită SimpleDateFormat care vă permite să formatați și să analizați datele conform cerințelor dvs.

Puteți utiliza caracterele de mai sus pentru a specifica formatul-

De exemplu:

1) Formatul datei este necesar: 2012.10.23 20:20:45 PST

Formatul de dată corespunzător specificat va fi- aaaa.LL.zz HH:mm:ss zzz

2) Formatul datei este necesar:09:30:00 AM 23-May-2012

Formatul de dată corespunzător specificat va fi-hh:mm:ss a zz-MMM-aaaa

Sfat: Atenție la scrierea cu majuscule. Dacă confundați M cu m, veți avea rezultate nedorite!

Să învățăm asta cu un exemplu de cod.

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
 }
}

ieșire:

Wed Nov 29 06:31:41 UTC 2017
06:31:41 AM 29-Nov-2017

Exemplu de comparare a datelor

Exemplu de comparare a datelor

Cea mai utilă metodă de comparare a datelor este utilizarea metodei – compareTo()

Să aruncăm o privire la fragmentul de cod de mai jos -

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 !!");
  }
 }
}

ieșire:

Date1 : 20-08-1981
Date2 : 12-10-2012
Date 1 occurs before Date 2